Nginx下配置Http Basic Auth保护目录

注册 Vultr VPS 送你10美金 免费玩4个月

一直在Apache下使用HTTP basic auth(.htpasswd)来保护网站的某些目录的访问,现在VPS上换成了Nginx同样需要保护一下。

Nginx下的配置也挺方便的,我们可以沿用由Apache的htpasswd模块生成的.htpasswd文件作为密码文件。注意,nginx 的 http auth basic 的密码是用 crypt(3) 加密的,而apache是md5加密。所以生成时:

/usr/local/apache2/bin/htpasswd -c -d pass_file user_name
回车输入密码,-c 表示生成文件,-d 是以 crypt 加密。
对于lnmp用户,一般不安装apache了,文末老N会告诉你个生成方法。

我们将这个htpasswd文件放到nginx/conf下,记得chmod 400 htpasswd来保护一下。

然后修改nginx.conf:

server {
server_name www.yuminstall.com;
root /var/www/yuminstall;
include /etc/nginx/fastcgi_php;
location / {
auth_basic "Password please";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
index index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}
}

加入了

auth_basic "Password please";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;

重启nginx即可

注册 Vultr VPS 送你10美金 免费玩4个月