linux nginx访问控制只允许某个ip段访问特定路径

葫芦的运维日志

浏览量 5686 2013/04/24 18:25

要在nginx中做特定目录访问控制首先要了解nginx中^~的意义,^~ 匹配路径的前缀,优先级在conf正则里同=一样是最高的优先匹配。
例如^~/control/ {} 即为匹配任何以/control/开头的路径并不再匹配其他正则。

location ^~ /control/ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
allow 172.30.1.0/24;
#如果允许多个段访问 只需追加 allow XXX.XXX.XXX.XXXX/mask即可
deny all;
}

以上规则即 /control/为开头的路径只能由172.30.1.0/24段访问,其他地址禁止访问。
由于^~正则优先级最高并不再匹配正则的规则所以需要在location内部加上
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;

以使/control/能被172.30.1.0段的地址正常访问,并让里面的文件能正常的解析。

📝 版权声明

本文作者:王梓 | 原文链接:https://www.bthlt.com/note/288-nginx访问控制只允许某个ip段访问特定路径

出处:葫芦的运维日志 | 转载请注明出处并保留原文链接

打赏

留言板

留言提交后需管理员审核通过才会显示

© 冰糖葫芦甜(bthlt.com) 2025 王梓打赏联系方式陕ICP备17005322号-1