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、说明此时还不能解析ph
需要再加入如下内容:
include fastcgi_param
fastcgi_pass unix:/tmp/php-fcgi.sock
fastcgi_index index.ph
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.ph
即加上用户及密码 有返回内容即成功。
二、黑名单/白名单
(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_param
fastcgi_pass unix:/tmp/dd.sock
fastcgi_index index.ph
fastcgi_param SCRIPT_FILENAME
/data/www$fastcgi_script_name
}
设置完成需要重新载入配置。
/usr/local/nginx/sbin/nginx -s reload