使用Nginx设置基本HTTP身份验证

第1步 - 安装Apache Tools

需要htpassword命令来配置将限制对目标网站的访问的密码。此命令是apache2-utils程序包的一部分,因此第一步是安装该程序包。

sudo apt-get install apache2-utils

步骤2 - 设置HTTP基本身份验证凭据

在此步骤中,运行网站的用户创建密码。

该密码和关联的用户名将存储在指定的文件中。密码将被加密,文件名可以是任何名称。在这里,我们使用文件/etc/nginx/.htpasswd和用户名nginx

要创建密码,请运行以下命令。需要进行身份验证,然后指定并确认密码。

sudo htpasswd -c /etc/nginx/.htpasswd nginx

检查新创建的文件的内容以查看用户名和散列密码。

cat /etc/nginx/.htpasswd

 

nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/

  

第3步 - 更新Nginx配置

已经创建了HTTP基本身份验证凭据,下一步是更新目标网站的Nginx配置以使用它。

auth_basicauth_basic_user_file指令使HTTP基本认证成为可能。值为auth_basic任意字符串,将在身份验证提示下显示; value auth_basic_user_file是在步骤2中创建的密码文件的路径。

两个指令都应该位于目标网站的配置文件中,目标网站通常位于/etc/nginx/sites-available目录中。使用nano或您喜欢的文本编辑器打开该文件

sudo nano /etc/nginx/sites-available/default

location部分下,添加两个指令:

. . .
server_name localhost;
​
location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
        auth_basic "Private Property";
        auth_basic_user_file /etc/nginx/.htpasswd;
}
. . .

第4步 - 测试安装程序

要应用更改,请先重新加载Nginx

sudo service nginx  -s reload

  

  

参考来源:https://cloud.tencent.com/developer/article/1355885