nginx访问控制用户认证两种方式

一、用户认证
1、首先需要用http来生成密码文件
即安装apache :yum install -y httpd
生成密码文件:htpasswd -c
/usr/local/nginx/conf/htpasswd [username] 首次使用
需要加-c参数
并输入密码。
2、在nginx虚拟主机配置文件中加入
location ~ .*admin.php$ {
auth_basic "Auth";
auth_basic_user_file
/usr/local/nginx/conf/htpasswd;
}
重启服务 : service nginx restart
浏览器访问:二次验证过,会下载文件
3、说明此时还不能解析php
需要再加入如下内容:
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/usr/local/nginx/html $fastcgi_script_name;
检查是否有错:/usr/local/nginx/sbin/nginx -t
重启服务 : service nginx restart
浏览器访问:二次验证过,会下载文件的原因
是因为:浏览器缓存的作用。
可在本机测试
curl -x127.0.0.1:80 -utest:52033dd
www.dd.com/admin.php
即加上用户及密码 有返回内容即成功。
二、黑名单/白名单
(1)全局 一:deny 127.0.0.1;
deny 192.168.81.0/24;
二:allow 127.0.0.1;
(2)针对模块
location ~ .*admin.php$ {
allow 127.0.0.1;
deny all;
include fastcgi_params;
fastcgi_pass unix:/tmp/dd.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
/data/www$fastcgi_script_name;
}
设置完成需要重新载入配置。
/usr/local/nginx/sbin/nginx -s reload

原文地址:https://www.cnblogs.com/ddgen/p/7116662.html