前段时间搭建了一个Nginx目录列表自用下载站,利用的正是Directory Lister免费PHP目录程序,由于本人有些资源需要保存到云端分享,限制通过域名访问xxx目录需账户密码认证,登录不成功强制401,分享的软件下载链接不通过账户认证可直接下载,所以此教程Nginx加密认证目录教程出炉啦。
1、创建类htpasswd文件
执行:
wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh
按提示输入用户名、密码、及认证文件名。脚本会自动生成认证文件。记录下脚本返回的文件路径。如:/usr/local/nginx/auth.pw
2、为Nginx添加auth认证配置
下面是以本站的soft目录为例,在域名的server段里加上如下代码:
location /xxx/
{
location ~ [^/]\.php(/|$)
{
auth_basic "Input Password";
auth_basic_user_file
/usr/local/nginx/auth.pw;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
}
注:自行修改“xxx”为你网站当前目录名称,如果你网站开启了SSL,需要添加server 80和server 443两处地方才能生效。
执行:/usr/local/nginx/sbin/nginx -t 测试配置是否有错误。
执行:/usr/local/nginx/sbin/nginx -s reload 载入配置文件。
执行:/etc/init.d/nginx reload 重启Nginx。
访问:https://YourDomainName/xxx/ 就会提示输入用户名和密码。
本教程适合LNMP一键安装包或自己安装的LNMP,目录和配置文件可能位置不一样,请酌情修改。
技术支持:Oh lovely.
春哥,认证失败是401不是404的