nginx配置详解二
2018-01-15 17:14
218 查看
1、deny和allow
实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,在nginx就得靠它了,编译的时候默认是安装了。
下面我们看一下实际操作效果:
一开始我们输入172.18.1.26:9011是可以访问nginx的欢迎页面的,现在我们在配置中加了deny 10.12.0.126(本地pc机器的ip),重新加载nginx后再访问就会出现下面图中这样。
我们限制所有的ip访问站点,除了pc机以外,那么我们需要设置如下:
我们可以看到curl 172.18.1.26:9011显示fobidden的错误,而自己的pc机访问则是ok的。
2、try_files指令
默认是先找index.html,如果找不到则依次往下找,这里有个特殊的地方就是最后一个找到的时候,可能会出现死循环的错误情况。所以要给个10s的过期时间。详细可以查看官网。
3、proxy_pass指令
下图中我们可以看到当浏览器输入:172.18.1.26:9011的时候请求跳转到es-head插件的请求url。
4、stub_status module模块
背景:之前安装nginx的时候没有使用这个模块,
重新加载的时候报以下错误:
查找资料网上都是在说编译nginx时加上 –with-http_stub_status_module 的配置,可是我已经安装nginx,不想将原来的配置丢掉,所以,需要如下操作
解决之后,我们reload一下,然后在浏览器上输入http://172.18.1.26:9011/status访问。
实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,在nginx就得靠它了,编译的时候默认是安装了。
下面我们看一下实际操作效果:
一开始我们输入172.18.1.26:9011是可以访问nginx的欢迎页面的,现在我们在配置中加了deny 10.12.0.126(本地pc机器的ip),重新加载nginx后再访问就会出现下面图中这样。
我们限制所有的ip访问站点,除了pc机以外,那么我们需要设置如下:
server { listen 9011; server_name localhost; location / { root html; index index.html; # 必须是先允许某个ip可以访问,然后才设置deny all 有一个先后顺序。否则都会被限制,从上到下的顺序,类似iptables。匹配到了便跳出。 allow 10.12.0.126; deny all; }
我们可以看到curl 172.18.1.26:9011显示fobidden的错误,而自己的pc机访问则是ok的。
2、try_files指令
try_files 语法: try_files file1 [file2 ... filen] fallback 默认值: 无 作用域: location
默认是先找index.html,如果找不到则依次往下找,这里有个特殊的地方就是最后一个找到的时候,可能会出现死循环的错误情况。所以要给个10s的过期时间。详细可以查看官网。
3、proxy_pass指令
下图中我们可以看到当浏览器输入:172.18.1.26:9011的时候请求跳转到es-head插件的请求url。
4、stub_status module模块
背景:之前安装nginx的时候没有使用这个模块,
location /status { stub_status on; }
重新加载的时候报以下错误:
查找资料网上都是在说编译nginx时加上 –with-http_stub_status_module 的配置,可是我已经安装nginx,不想将原来的配置丢掉,所以,需要如下操作
#先找到nginx的解压后的目录位置,重新configure,加上现在我们需要的这个模块。 #下面的指令可以帮我们看到之前编译安装的时候安装了哪些模块 [root@bgsbtsp0010-dqf nginx]# ./sbin/nginx -V nginx version: nginx/1.12.2 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --error-log-path=/usr/local/nginx/error.log --pid-path=/usr/local/nginx/nginx.pid --http-log-path=/usr/local/nginx/access.log --with-debug #加上我们需要的模块 [root@bgsbtsp0010-dqf nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --error-log-path=/usr/local/nginx/error.log --pid-path=/usr/local/nginx/nginx.pid --http-log-path=/usr/local/nginx/access.log --with-debug --with-http_stub_status_module # make make upgrade,不能make install 否则会出现下图这样的情况两个可执行nginx文件。 [root@bgsbtsp0010-dqf nginx-1.12.2]# make && make upgrade
解决之后,我们reload一下,然后在浏览器上输入http://172.18.1.26:9011/status访问。
相关文章推荐
- Nginx配置文件nginx.conf中文详解
- Nginx简介及配置文件详解
- nginx配置文件详解中文版
- nginx虚拟主机配置实例详解
- Nginx配置文件nginx.conf中文详解
- Nginx配置文件优化实例与参数详解
- Nginx配置文件详解
- Nginx 配置文件详解
- 实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解
- nginx的配置详解一
- Nginx配置详解 二!
- nginx的配置详解一
- Nginx(一):静态资源web服务器配置详解
- Nginx(三):反向代理负载均衡集群配置详解
- [备忘录]-Nginx配置文件详解
- Nginx配置文件(nginx.conf)配置详解
- nginx.conf中关于nginx-rtmp-module配置指令详解
- Nginx配置详解
- Nginx配置详解
- nginx配置详解二