如果我们深入研究Nginx的功能还是蛮有意思的,比如我们前面有聊到UA可以控制爬虫限制和放行访问。我们也可以利用Nginx进行控制和限制URL、目录,以及IP地址的访问。比如有一些运维的时候,需要用到屏蔽某些IP地址,或者是我们某个目录只能某个IP地址访问或者限制访问。
在这篇文章中,老蒋整理Nginx常见的控制URL、目录,以及IP地址的访问权限设置案例实例记录。
限制指定目录扩展名后缀
location ~ ^/images/.*\.(php|php5|sh|pl|py)${deny all;}location ~ ^/static/.*\.(php|php5|sh|pl|py)${deny all;}
禁止直接访问txt和doc文件
location ~* \.(txt|doc)$ {if (-f $request_filename) {root /data/www/www;rewrite ^(.*) https://www.itbulu.com/ break; #可以重定向到某个URL;}}location ~* \.(txt|doc)$ {root /data/www/www;deny all;}
禁止访问文件和目录
#禁止访问的文件或目录 location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 404; }
排除某个目录不受限制
location ~ \.well-known{ allow all; }
禁止访问单个目录的命令
location ~ ^/(static)/ {deny all;}location ~ ^/static {deny all;}
禁止访问多个目录的配置
location ~ ^/(static|js) {deny all;}
禁止目录让外界访问
location ~ ^/mysql_loging/ {allow 192.168.1.4;deny all;}location ~ .*\.(php|php5)?$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;}说明:该配置只允许192.168.1.4IP访问mysql_loging目录
限制IP和IP段
location / {deny 192.168.0.4;allow 192.168.1.0/16;allow 10.0.0.0/24;deny all;}说明:此限制是对某些IP做整个网站的限制访问。
非指定域名访问跳转
if ($host !~ ^www/.itbulu/.com$) {rewrite ^(.*) http://www.baidu.com$1 permanent;}
来源地址:https://blog.csdn.net/zccmp20/article/details/127403252