下面是“Nginx层面配置基础用户验证的完整步骤”的完整攻略:
步骤一:安装Nginx
如果您还没有安装Nginx,可以在Ubuntu上执行以下命令进行安装:
sudo apt update
sudo apt install nginx
步骤二:创建密码文件
我们需要创建一个包含用户名和密码的文件以进行验证。可以将密码存储在一个文本文件中,格式如下:
username:password
Nginx支持多种密码存储格式,例如plaintext、md5和sha1等。这里我们以plaintext格式为例,使用htpasswd命令生成密码文件。
执行以下命令生成密码文件,并设置一个用户:
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd username
输入密码后,系统将自动生成.htpasswd
文件,并将密码信息写入该文件。
步骤三:编辑Nginx配置文件
首先备份默认的Nginx配置文件:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
然后编辑Nginx配置文件,添加以下内容,以启用基础用户验证:
server {
listen 80;
server_name example.com;
root /var/www/html;
# add basic authentication
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
# proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
}
在该配置文件中,我们使用了auth_basic
指令启用基础用户验证,并指定了密码文件的路径。此外,我们还需要启用Nginx的HTTP代理功能,将用户请求代理到实际的应用程序服务器。
步骤四:重启Nginx
完成所有配置后,执行以下命令重启Nginx服务:
sudo systemctl restart nginx
完成上述步骤后,用户试图访问example.com
时会被要求输入用户名和密码。如果未提供正确的凭据,则无法访问受保护的内容。
示例一:将基础用户验证应用于单个目录
以下示例演示如何将基础用户验证应用于单个目录而不是整个网站。
假设我们有一个名为/var/www/html/secret
的目录,并且我们希望利用基础用户验证来保护它。
我们可以在Nginx配置文件中指定以下内容:
server {
listen 80;
server_name example.com;
root /var/www/html;
location /secret {
# add basic authentication
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location / {
# proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
}
在该配置文件中,我们将auth_basic
指令应用于/secret
目录,并在其他区域保持默认设置。
示例二:将基础用户验证应用于多个目录
假设我们有两个目录需要基础用户验证:/var/www/html/secret1
和/var/www/html/secret2
。我们可以在Nginx配置文件中指定以下内容:
server {
listen 80;
server_name example.com;
root /var/www/html;
location /secret1 {
# add basic authentication
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location /secret2 {
# add basic authentication
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location / {
# proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
}
在该配置文件中,我们将auth_basic
指令应用于两个目录,并在其他区域保持默认设置。
以上就是“Nginx层面配置基础用户验证的完整步骤”的攻略,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx层面配置基础用户验证的完整步骤 - Python技术站