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