nginx访问控制
nginx访问控制
创新互联服务项目包括婺城网站建设、婺城网站制作、婺城网页制作以及婺城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,婺城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到婺城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!(1)可以限制只让某个ip访问
如:只让127.0.0.1访问admin.php
[root@wjh2 ~]# vi /usr/local/nginx/conf/vhosts/discuz.conf #打开虚拟主机配置文件#
加入以下配置:
location ~ .*admin.php$ {
allow 127.0.0.1;
deny all;
#auth_basic "qing zhu yi an quang";
#auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
include fastcgi_params;
fastcgi_pass unix:/tmp/abc.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /discuz/www$fastcgi_script_name;
}
curl测试结果:127.0.0.1访问200 OK
其他IP访问访问显示403
(2)禁止某个IP或者IP段访问站点的设置
[root@wjh2 ~]# vi /usr/local/nginx/conf/vhosts/discuz.conf #打开虚拟主机配置文件#
加入以下配置全局:
server
{
listen 80;
server_name www.123.com www.456.com www.1234.com;
#域名跳转
if ($host != \'www.123.com\')
{
rewrite ^/(.*)$
}
index index.html index.htm index.php;
root /discuz/www;
deny 127.0.0.1;
deny 192.168.0.0/24;
(3) 需求:访问/admin/目录的请求,只允许某几个IP访问,配置如下:
location /admin/
{
allow 192.168.133.1;
allow 127.0.0.1;
deny all;
}
(4) 可以匹配正则
location ~ .*(abc|image)/.*.php$ #只要匹配这两个目录,就不能解析php#
{
deny all;
}
(5)根据user_agent限制
if ($http_user_agent ~ \'Spider/3.0|YoudaoBot|Tomato\')
{
return 403;
}
deny all和return 403效果一样
总结:如果只有单独的全局匹配或单独的location精确匹配,他们都是以来源IP 逐一从上到下匹配,其中一条命令匹配成功,其他匹配条件失效。
如果既有全局匹配又有location精确匹配情况,以location精确匹配情况为主、以来源IP逐一从上到下匹配,其中一条命令匹配成功,其他匹配条件失效。
文章标题:nginx访问控制
分享网址:http://myzitong.com/article/cjsdgi.html