Nginx目录设置访问验证

来源:互联网 发布:我打打单软件 编辑:程序博客网 时间:2024/05/21 19:38

LNMP下为Nginx目录设置访问验证的用户名密码

2011年07月1日 上午 | 作者:VPSer

有时候需要象Apache那样为指定的目录添加访问验证,一般在Apache下使用htpasswd来添加,而htpasswd是包含在apache2-utils里,一般LNMP一键安装包或自己编译安装LNMP都不会安装apache2-utils

1、创建类htpasswd文件

wget -c soft.vpser.net/lnmp/ext/htpasswd.sh

bash htpasswd.sh

按提示输入用户名、密码、及认证文件名。

脚本会自动生成认证文件。记录下脚本返回的文件路径。

如:/usr/local/nginx/conf/vpser.net.auth。

2、为Nginx添加auth认证配置

下面是以某域名下面的web目录为例,在域名的server段里加上如下代码:
location ^~ /web/
{
auth_basic "Authorized users only";
auth_basic_user_file 这里写前面脚本返回的文件路径;
}

Authorized users only为提示信息,可以修改成自己想让他提示的信息;

auth_basic_user_file 后面需要填htpasswd.sh脚本返回的人家文件的路径。

重启nginx,访问http://yourdomainname/web/ 就会提示输入用户名和密码。

注意,加上认证之后该目录下的PHP将不会被解析,会出现下载提示,如果想可以解析PHP可以将上面的配置改为:

location ^~ /web/ {
location ~ .*\.(php|php5)?$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
auth_basic "Authorized users only";
auth_basic_user_file 这里写前面脚本返回的文件路径;
}