Nginx给网站添加用户认证配置( Basic HTTP authentication)

说明:ngx_http_auth_basic_module模块实现让访问者只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到。nginxhttp auth模块以及Apache http auth都是很好的解决方案。

默认情况下nginx已经安装了ngx_http_auth_basic_module模块。

Nginx认证配置实例

生成认证文件

1
2
3
# printf "test:$(openssl passwd -crypt 123456)\n" >> /home/htpasswd
# cat /home/htpasswd
test:xyJkVhXGAZ8tM

注意:这里账号:test,密码:123456,记住认证文件路径

配置网站conf文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server{
listen 80;
server_name www.moerats.com moerats.com;
# 可选
# auth_basic "Please enter your username and password";
# auth_basic_user_file /home/htpasswd;
index index.html index.php;
root /home/wwwroot/www.moerats.com;
location /
{
auth_basic "Please enter your username and password";
auth_basic_user_file /home/htpasswd;
autoindex on;
}
}

注意:一定要注意auth_basic_user_file路径,否则会不厌其烦的出现403。

重启Nginx

1
/etc/init.d/nginx restart