Nginx目录访问验证

1、创建类htpasswd文件

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

按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如:/usr/local/nginx/conf/vpser.net.auth。

2、为Nginx添加auth认证配置
下面是以某域名下面的soft目录为例,在域名的server段里加上如下代码:

location   ^~ /   {
  auth_basic "Authorized users only";
  auth_basic_user_file  wttxAuth.conf;
}

Authorized users only为提示信息,可以修改成自己想让他提示的信息;auth_basic_user_file 后面需要填htpasswd.sh脚本返回的人家文件的路径。按上面的提示修改好配置后,重启nginx,访问http://yourdomainname/soft/ 就会提示输入用户名和密码。

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

location ^~ / {
	location ~ .*.(php|php5)?$ {
		fastcgi_pass unix:/tmp/php-cgi.sock;
		fastcgi_index index.php;
		include fastcgi.conf;
	}
auth_basic "Authorized users only";
auth_basic_user_file "path/to/file";
}

本教程适合LNMP一键安装包或自己安装的LNMP,只不过目录和配置文件可能位置不一样。
设置完执行:

/usr/local/nginx/sbin/nginx -t

测试配置是否有错误。
再执行:

/usr/local/nginx/sbin/nginx -s reload

载入配置文件。