介绍
Nginx 是活跃使用的领先 Web 服务器之一. 它及其商业版, Nginx Plus,由 Nginx, Inc. 开发。
在本教程中,您将学习如何使用 Ubuntu 14.04 上的 HTTP 基本身份验证方法限制访问 Nginx 驱动的网站。
前提条件
要完成本教程,您将需要以下内容:
- One CentOS 7 Droplet 具有 sudo 非根用户,您可以通过遵循 本初始服务器设置教程来设置。
- Nginx 安装并配置在您的服务器上,您可以通过遵循 本 Nginx 安装教程来完成。
步骤1:安装 HTTPD 工具
您将需要htpassword
命令来配置密码,以限制访问目标网站. 此命令是httpd-tools
包的一部分,所以第一步是安装该包。
1sudo yum install -y httpd-tools
步骤 2:设置基本的 HTTP 身份验证凭证
在此步骤中,您将为运行网站的用户创建密码。
该密码和相关的用户名将存储在您指定的文件中。密码将被加密,文件的名称可以是您想要的任何东西。
要创建密码,运行以下命令。
1sudo htpasswd -c /etc/nginx/.htpasswd nginx
您可以检查新创建的文件的内容,查看用户名和哈希密码。
1cat /etc/nginx/.htpasswd
1[label Example /etc/nginx/.htpasswd]
2nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/
第3步:更新 Nginx 配置
现在您已经创建了基本的 HTTP 身份验证凭证,下一步是更新目标网站使用的 Nginx 配置。
HTTP 基本身份验证是通过 auth_basic
和 auth_basic_user_file
指令实现的. auth_basic
的值是任何字符串,并将在身份验证提示中显示; auth_basic_user_file
的值是在步骤 2 中创建的密码文件的路径。
这两个指令都应该在目标网站的配置文件中,通常位于 /etc/nginx/
目录中。
1sudo nano /etc/nginx/nginx.conf
在服务器
部分中,添加两个指令:
1[label /etc/nginx/nginx.conf]
2. . .
3server {
4 listen 80 default_server;
5 listen [::]:80 default_server;
6 server_name _;
7 root /usr/share/nginx/html;
8
9 auth_basic "Private Property";
10 auth_basic_user_file /etc/nginx/.htpasswd;
11. . .
保存并关闭文件。
步骤 4 – 测试设置
要应用这些更改,请先重新加载 Nginx。
1sudo systemctl reload nginx
现在尝试访问您刚刚通过在您最喜欢的浏览器中访问http://your_server_ip/
的网站,您应该提供一个身份验证窗口(它说私有财产
,我们为auth_basic
设置的字符串),并且您将无法访问网站,直到您输入正确的凭证。 如果您输入您设置的用户名和密码,您将看到默认的Nginx主页。
结论
您刚刚完成了 Nginx 网站的基本访问限制。 有关此技术和其他访问限制手段的更多信息可在 Nginx 文档中找到(https://www.nginx.com/resources/admin-guide/restricting-access/)。