IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

nginx访问控制Access Control的问题

IPCPU--网络之路 2015-06-01 09:50:44 累计浏览 3,461 次
本机暂存

导论

   在nginx中使用allow和deny做Access Control访问控制时,有时会出现不生效的问题。

   所以我们用实验来验证下

   nginx配置如下:

  • server {

  •    listen 80  ;

  •    server_name     kibana.ipcpu.com;

  •    index index.html index.htm index.php;

  •    #deny bad ip

  •    deny 211.81.175.6;    

  •    location /nginxacc {

  •        root     /home/htdocs/kibana;

  •        #deny bad ip

  •        deny 211.81.175.8;

  •    }

  •    location / {

  •        root     /home/htdocs/kibana;

  •    }

  • }

   我们的预期结果是IP211.81.175.6全站不允许访问,IP211.81.175.8不允许访问nginxacc目录。

测试

   分别访问域名根目录

  • [root@BJZW-175-8 ~]$curl -o /dev/null -s -w %{http_code} http://kibana.ipcpu.com/

  • 200

  • #

  • [root@BJZW-175-6 ~]#curl -o /dev/null -s -w %{http_code} http://kibana.ipcpu.com/

  • 403

   测试结果211.81.175.8可以访问,211.81.175.6不能访问。符合预期结果。

   分别访问域名nginxacc目录

  • [root@BJZW-175-8 ~]$curl -o /dev/null -s -w %{http_code} http://kibana.ipcpu.com/nginxacc/

  • 403

  • #

  • [root@BJZW-175-6 ~]#curl -o /dev/null -s -w %{http_code} http://kibana.ipcpu.com/nginxacc/

  • 200

   测试结果211.81.175.8不能访问,211.81.175.6可以访问。不符合预期结果

解释

   上下级概念:上一级与下一级是一个相对概念,http相对server为上一级,server为http下一级;server相对location为上一级,location为server下一级。

   如果当前ACL(child->rules)为空,则继承上一级的ACL(parent->rules)。

   如果当前级别中定义过ACL之后,不会与上一级的ACL进行列表合并,只有当前列表生效。

   nginx源代码 src/http/modules/ngx_http_access_module.c 中的 ngx_http_access_merge_loc_conf 函数有相关定义。

参考文章

   http://blog.liulantao.com/blog/2014/2014-06-05-nginx-access-control-with-allow-deny.html

同分类推荐文章

  1. 绿盟科技《APT组织研究年鉴》(2026 版)正式发布 (2026-06-16 20:21:10)
  2. 【已复现】Linux内核Fragnesia权限提升漏洞(CVE-2026-46300) (2026-06-15 10:53:58)
  3. 企业文档安全最佳实践(二):给文档上“身份证”——手动标密与智能自动标密 (2026-06-12 17:18:33)

查看更多 安全 文章 →

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,164)
  2. 搜狐闪电邮箱的 Nginx/Postfix 使用模式 (累计阅读 33,895)
  3. 记录一个软中断问题 (累计阅读 16,954)
  4. 解析nginx负载均衡 (累计阅读 16,622)
  5. server日志的路径分析 (累计阅读 11,240)
  6. Nginx模块开发入门 (累计阅读 11,169)
  7. 检查nginx配置,重载配置以及重启的方法 (累计阅读 10,896)
  8. Cacti 添加 Nginx 监控 (累计阅读 10,641)
  9. fsockopen 异步处理 (累计阅读 10,344)
  10. 使用Squid缓存视频 (累计阅读 10,339)