介绍
Nginx是主动使用的领先的Web服务器之一。 它和它的商业版本,Nginx Plus,是由Nginx公司开发的
在本教程中,您将了解如何使用Ubuntu 14.04上的HTTP基本身份验证方法限制对Nginx支持的网站的访问。 HTTP基本认证是一种简单的用户名和(哈希)密码认证方法。
先决条件
要完成本教程,您需要以下内容:
一个CentOS 7Droplet用sudo的非root用户,您可以通过以下设置初始服务器设置教程 。
Nginx的安装和你的服务器,你可以通过以下做配置本Nginx的安装教程 。
第1步 - 安装HTTPD工具
你需要的htpassword
命令配置将限制访问目标网站的密码。 此命令是一部分httpd-tools
包,所以第一步是安装包。
sudo yum install -y httpd-tools
第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配置以使用它。
HTTP基本身份验证是由成为可能auth_basic
和auth_basic_user_file
指令。 价值auth_basic
是任何字符串,并会在认证提示显示; 价值auth_basic_user_file
是路径到在第2步中创建密码文件。
这两个指令应该是目标网站,它通常位于配置文件中/etc/nginx/
目录。 使用打开文件nano
或您喜爱的文本编辑器。
sudo nano /etc/nginx/nginx.conf
在服务器部分,添加两个指令:
. . .
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
auth_basic "Private Property";
auth_basic_user_file /etc/nginx/.htpasswd;
. . .
保存并关闭文件。
第4步 - 测试设置
要应用更改,首先重新加载Nginx。
sudo systemctl reload nginx
现在尝试去访问你刚才担保的网站上http:// your_server_ip /
在你喜欢的浏览器。 你应该有一个身份验证窗口(其中写着“私有财产”,为我们设定的字符串提交auth_basic
),你将无法直到输入正确的凭据访问该网站。 如果输入您设置的用户名和密码,您将看到默认的Nginx主页。
结论
您刚刚完成了对Nginx网站的基本访问限制。 关于这项技术和访问限制等手段更多信息,请Nginx的文档中 。