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

2019-05-09 15:13:35 浏览数 (1)

要在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段的地址正常访问,并让里面的文件能正常的解析。

0 人点赞