在 Nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,Nginx 已经安装了该模块。整体过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 Nginx 配置文件中根据之前事先保存的文件开启访问验证。

生成密码可以使用 htpasswd,或者使用 openssl 。下面以 htpasswd 为例。

1、安装htppasswd

sudo apt install apache2-utils

2、生成密码文件

htpasswd -c /etc/nginx/nginx_passwd phoenix

注:phoenix为用户名 密码:规则

3、配置nginx

在/etc/nginx/nginx.conf配置文件中添加:

auth_basic "Test Nginx Basic Auth"; # 将 “Test Nginx Basic Auth” 改为 off 关闭认证,也可改为你想要的内容;

auth_basic_user_file /etc/nginx/nginx_passwd; # 授权用户和密码文件的路径;

4、重启nginx

sudo systemctl restart nginx.service