nginx配置网站访问密码

效果演示

有时候我们需要对网站的访问进行权限认证。普遍的做法是做一个登录验证功能,可如果是静态博客,就没办法通过后端程序进行验证。这种情况下,可以用 nginx 的 ngx_http_auth_basic_module 模块进行登录验证。

默认情况下,nginx自带安装了 ngx_http_auth_basic_module 模块,我们只需要用第三方工具设置用户名、密码,保存到文件中,并在 nginx 配置中开启访问验证即可。


使用htpasswd生成密码

安装 htpasswd

1
yum  -y install httpd-tools

设置账号密码

1
sudo htpasswd -c /usr/local/nginx/passwd username

按照提示输入密码,就在 /usr/local/nginx 目录下的 passwd 中保存了账号密码


nginx配置开启验证

修改配置文件

打开nginx配置文件,以 /usr/local/nginx/conf/vhost/example.conf 为例:

如果是要对整个站点都进行访问权限验证,就配置 nginx.conf 文件

在配置文件中加上:

1
2
3
4
5
location / 
{
auth_basic "What are you want to do?";
auth_basic_user_file /usr/local/nginx/passwd;
}

重启nginx

1
sudo service nginx restart

via:nginx配置网站访问密码