在 Nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,Nginx 已经安装了该模块。整体过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 Nginx 配置文件中根据之前事先保存的文件开启访问验证。
生成密码可以使用 htpasswd,或者使用 openssl 。下面以 htpasswd 为例。
1、安装htppasswd
sudo apt install apache2-utils2、生成密码文件
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
评论