nginx访问控制

  

Nginx的否认和允许https://coding.net/u/aminglinux/p/nginx/git/blob/master/access/deny_allow.md

  

Nginx访问控制——deny_allow

  

Nginx的否认和允许指令是由ngx_http_access_module模块提供,Nginx安装默认内置了该模块。
除非在安装时有指定——without-http_access_module。

  

语法   

语法:允许/拒绝地址| CIDR unix: | |所有

  

它表示,允许/拒绝某个ip或者一个ip段访问。如果指定unix:,那将允许插座的访问。
注意:unix在1.5.1中新加入的功能。

  

在nginx中,允许和拒绝的规则是按顺序执行的。

  

示例   

示例1:位置
/
{
允许192.168.0.0/24;
允许127.0.0.1;
否认;
}

  

说明:这段配置值允许192.168.0.0/24网段和127.0.0.1的请求,其他来源IP全部拒绝。

  

示例2:
位置~“admin"
{
允许110.21.33.121;
否认所有
}
说明:访问的uri中包含管理的请求,只允许110.21.33.121这个IP的请求。
 nginx访问控制

  

 nginx访问控制”> <br/> <img src=

  

基于位置的访问控制

  

在生产环境中,我们会对某些特殊的请求进行限制,比如对网站的后台进行限制访问。
这就用到了位置配置。

  

示例1   

位置/摘要/
{
否认;
}

  

说明:针对/摘要/目录,全部禁止访问,这里的否认所有可以改为返回403。

  

 nginx访问控制”> <br/>示例2 </p>
  <p>位置~,. bak | .ht {
返回403;
}
说明:访问的uri中包含. bak字样的或者包含.ht的直接返回403状态码。

  

测试链接举例:

  
      李<李>www.aminglinux.com/123.bak   李<李>www.aminglinux.com/aming/123/.htalskdjf   
  

 nginx访问控制”> <br/>示例3 </p>
  <p>位置~(数据缓存| | tmp | |附件)。*。php $ <br/> {<br/>否认;<br/>} </p>
  <p>说明:请求的uri中包含数据,缓存,tmp,图片,附件并且以。php结尾的,全部禁止访问。</p>
  <p>测试链接举例:</p>
  <ol>
  李<李>www.aminglinux.com/aming/cache/1.php </>
  李<李>www.aminglinux.com/image/123.phps </>
  <李>www.aminglinux.com/aming/datas/1.php <br/> <img src=      

Nginx基于document_uri美元的访问控制

  

这就用到了变量document_uri美元,根据前面所学内容,该变量等价于美元uri,其实也等价于位置匹配。

  

示例1   

if ($ document_uri ~“/admin/?
{
返回403;
}

  

说明:当请求的uri中包含/admin/时,直接返回403。

  

如果结构中不支持使用允许和拒绝。

  

测试链接:

  
      <李>www.aminglinux.com/123/admin/1.html匹配李   <李>www.aminglinux.com/admin123/1.html不匹配李   <李>www.aminglinux.com/admin.php不匹配李   
  

 nginx访问控制”> <br/>示例2 </p>
  <p> if ($ document_uri=/admin.php) <br/> {<br/>返回403;<br/>} </p>
  <p>说明:请求的uri为/admin.php时返回403状态码。</p>
  <p>测试链接:</p>
  <ol>
  <李>www.aminglinux.com/admin.php匹配李</>
  <李>www.aminglinux.com/123/admin.php不匹配李</>
  </ol>
  <p> <img src=

  

示例3
#下面两种的结果不同
if ($ document_uri ~/数据/|/缓存。。php的美元)
#如果($ document_uri ~”(/数据/|/缓存/)。
。php的美元)
{
返回403;
}

  

说明:请求的uri包含数据或者缓存目录,并且是php时,返回403状态码。

  

测试链接:

  
      <李>www.aminglinux.com/data/123.php匹配李   <李>www.aminglinux.com/cache1/123.php不匹配李   
  

 nginx访问控制

  

nginx基于美元request_uri访问控制

  

request_uri美元比docuemnt_uri美元多了请求的参数。

nginx访问控制