Nginx 简单用户认证

有时候我们会有一些Web系统,默认不带登录认证功能,除了限制访问IP之外,还需要添加一个登录认证,Nginx自带的 ngx_http_auth_basic_module模块可以帮我们实现一个简单的用户登录验证功能。

语法: auth_basic string | off;

默认值: off

配置段: http, server, location, limit_except

默认不开启认证,如果后面跟上字符,这些字符会在弹窗中显示。

1
2
$ echo -n 'dingmingk:' >> conf/site_pass
$ openssl passwd passwd123 >> conf/site_pass

生成一个用户名为dingmingk密码为passwd123的用户认证。

1
2
3
4
5
6
7
8
9
10
11
server {
server_name www.dingmingk.com
index index.html index.php;
root /data/www.dingmingk.com;
location / {
auth_basic "Please input your Username&Password.";
auth_basic_user_file conf/site_pass;
}
}

Safari浏览器打开如下:
nginxAuth1
认证错误界面:
nginxAuth2