Nginx 是一款免费、开源的 Web 服务器,用于 负载均衡、缓冲和缓存。自 2004 年问世以来,Nginx 因扩展 Web 服务器和反向代理而广受欢迎。由于其高性能和处理大量连接的卓越能力,它被用于管理和控制传入流量。
HTTP 身份验证是如何工作的?
在 基本 HTTP 身份验证 中,服务器上的所有路由都会被阻止,并需要相应的凭据进行身份验证。每当用户尝试访问受保护的资源时,服务器都会向用户发送一个 WWW-Authenticate 标头 和一个 401 Unauthorized 响应。如果用户使用的用户名和密码正确且与 密钥文件 匹配,则建立连接,否则拒绝连接。
在本教程中,我们将引导您完成 在 Ubuntu 20.04 上使用 Nginx 设置基本 HTTP 身份验证.
前提条件
要学习本教程,您需要满足以下条件:
- 最新版本的 Ubuntu 已安装 在您的系统上。
- 系统用户必须拥有 sudo 权限.
- Nginx 已安装并配置 在您的服务器上。
步骤 1:更新软件源
在系统上安装任何新软件或 API 包之前,请刷新软件源以避免错误或任何包冲突。首先,我们将使用 更新软件sudo 命令:
|
1 |
sudo apt-get update |
现在我们已经更新了软件源,让我们安装必要的 apache2 包。
步骤 2:安装必要包
由于我们正在为目录设置 HTTP 身份验证,我们将使用 htpasswd 命令来创建加密密码。使用以下命令安装 apache2-utils 包 :
|
1 |
sudo apt-get install apache2-utils |
步骤 3:创建用户和密码
在此步骤中,我们将设置基本 HTTP 身份验证凭据。在根目录下,创建一个与用户关联的 .htpasswd 文件。密码将被加密,文件名可以任意选择。使用以下命令创建文件并添加带有加密密码的用户:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

接下来,使用以下命令验证新创建的文件:
|
1 |
cat /etc/nginx/.htpasswd |
步骤 4:更新 Nginx 配置
一旦我们有了 HTTP 基本身份验证凭据,让我们设置 Nginx 并将其用于我们的目标网站。我们需要 auth_basic 和 auth_basic_user_file 指令来建立 HTTP 基本身份验证。 auth_basic 指令的值是字符串格式,而 auth_basic_user_file 的值是在 步骤 3.
中创建的密码文件的路径。将这两个指令包含在目标网站的配置文件中非常重要。您可以在 /etc/nginx/sites-available 目录中找到目标网站的位置。使用 nano 编辑器打开配置文件:
|
1 |
sudo nano /etc/nginx/sites-available/default |
然后,在 location 部分下添加这两个指令:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # 首先尝试将请求作为文件提供,然后 # 作为目录,然后回退到显示 404。 try_files $uri $uri/ =404; # 取消注释以在此位置启用 naxsi # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
添加指令后,保存并关闭配置文件。
步骤 5:重启 Nginx
接下来,重新加载或重启 Nginx 服务以在我们的虚拟主机上应用更改。之后,我们将尝试使用我们的基本 HTTP 身份验证来访问受保护的域名。使用以下命令激活 Nginx 服务:
|
1 |
sudo service nginx reload |
步骤 6:安全 Web 访问
重启 Nginx 后,下一步是尝试在您最喜欢的浏览器中访问该 IP 地址或域名。在浏览器中点击 IP 地址 http://your_domain_name/ 后,将打开一个提示,要求您输入凭据进行身份验证。输入正确的用户名和密码后,您将看到默认的 Nginx 主页。
结论
在本教程中,我们学习了如何使用 Nginx 配置基本 HTTP 身份验证。基本的用户名/密码身份验证只是在 Nginx 中建立安全连接的众多身份验证选项之一。
还有其他用于服务器身份验证的强大选项。例如,您可以使用的一些常用方法包括 API 集成、JSON Web Token、基于 SSH 密钥的身份验证。尽管最初获得强大的安全机制可能看起来很棘手,但它们在保护您的隐私方面非常有效。
此外,您还可以从我们的博客访问许多其他关于 Nginx 的学习资料和教程:
- Nginx 服务器和 Location 块选择算法概述
- 在 Ubuntu 20.04 上使用 Nginx 安装和配置 Laravel
- 在 Ubuntu 20.04 上使用 PostgreSQL、Nginx 和 Gunicorn 设置 Django
祝您计算愉快!

评论
暂无评论。发表第一条评论吧。