Nginx服务器中为网站或目录添加认证密码的配置详解

  

一、认证密码配置基本概念

Nginx服务器中配置认证密码,通俗讲就是为特定的网站或目录设置访问密码,在用户想要访问这个网站或目录的时候需要输入用户名和密码才能够进入。这种配置方式的好处在于能够大幅度增强服务器的安全性,只有授权的用户才能够进入网站或目录,保证数据的安全性和完整性。

要在Nginx服务器中添加认证密码,需要在nginx.conf文件中添加如下几行代码:

location /{
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/htpasswd;
}

其中,location代表需要添加认证密码的网站或目录,auth_basic设置提示信息,例如本例中的"Restricted",auth_basic_user_file指定存储用户名和密码的文件所在的路径。

二、添加认证密码的配置详解

  1. 创建用于存储用户名和密码数据的htpasswd文件

首先,需要创建一个用于存储用户名和密码数据的htpasswd文件,可以在Linux命令行中输入如下命令:

sudo htpasswd -c /etc/nginx/htpasswd username

其中,-c表示要创建的文件是第一次创建的,/etc/nginx/htpasswd是指文件存储路径,username是要创建的用户名。输入以上命令后会提示输入密码,密码输入完毕后htpasswd文件中就记录了该用户的用户名和加密后的密码信息。

  1. 配置Nginx服务器

在nginx.conf文件中添加如下代码:

server {
    listen 80;
    server_name example.com;
    location / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/htpasswd;
    }
}

以上代码指定了服务器监听的端口和域名,以及需要添加认证密码的网站或目录。

  1. 重启Nginx服务器

完成以上两步操作后,需要重启Nginx服务器,使配置生效。在Linux命令行中输入如下命令即可重启Nginx服务器:

sudo systemctl restart nginx

三、示例说明

  1. 给整个网站添加认证密码

假设现在需要给域名为example.com的整个网站添加认证密码,则可以按照以上“添加认证密码的配置详解”中的步骤进行操作,修改server代码块,如下所示:

server {
    listen 80;
    server_name example.com;
    location / {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/htpasswd;
    }
}
  1. 给某个目录添加认证密码

假设现在需要给example.com域名下的/test目录添加认证密码,则可以按照以上“添加认证密码的配置详解”中的步骤进行操作,修改server代码块,如下所示:

server {
    listen 80;
    server_name example.com;
    location /test {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/htpasswd;
    }
}

以上示例中,location指定了需要添加认证密码的/test目录。

相关文章