如何使用Ubuntu 14.04中的Nginx设置基本HTTP验证
#介绍
Nginx是主要使用的主要网络服务器之一。它和它的商业版,Nginx Plus,由Nginx,Inc.开发
在本教程中,您将学习如何使用Ubuntu 14.04上的HTTP基本身份验证方法限制对 Nginx 网站的访问。HTTP基本认证是一个简单的用户名和(哈希)密码验证方法。
##预备工作 要完成本教程,您需要以下内容:
- 一个 Ubuntu 14.04 与一个sudo非root用户。
- Nginx 在您的服务器上安装并配置,您可以通过以下 Nginx 文章来执行此操作。
##步骤1 - 安装 Apache 工具 您将需要 htpassword 命令来配置将限制对目标网站访问的密码。该命令是apache2-utils包的一部分,所以第一步是安装该包。
$ sudo apt-get install apache2-utils
##步骤2 - 设置 HTTP 基本身份验证 在此步骤中,您将为运行该网站的用户创建一个密码。
该密码和相关的用户名将存储在您指定的文件中。密码将被加密,文件的名称可以是任何您喜欢的。在这里,我们使用该文件/etc/nginx/.htpasswd和用户名nginx。
要创建密码,请运行以下命令。您需要进行身份验证,然后指定并确认密码。
$ sudo htpasswd -c /etc/nginx/conf.d/.htpasswd jiaxin
您可以检查新创建的文件的内容,以查看用户名和哈希的密码。
$ cat /etc/nginx/conf.d/.htpasswd
示例: /etc/nginx/conf.d/.htpasswd
jiaxin:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/
步骤3 - 更新 Nginx 配置
现在您已经创建了 HTTP 基本认证,下一步是更新目标网站的 Nginx 配置以使用它。
auth_basic 和 auth_basic_user_file指令可以实现HTTP基本认证。
值为 auth_basic 任何字符串,并将在认证提示符下显示; 该值 auth_basic_user_file 是在步骤2中创建的密码文件的路径。
这两个指令应该在目标网站的配置文件中,通常位于 /etc/nginx/sites-available 目录中。使用 vim 或您最喜爱的文本编辑器打开该文件。
$ sudo vim /etc/nginx/sites-available/default
在位置部分下,添加两个指令:
# /etc/nginx/sites-available/default.conf
. . .
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
auth_basic "Private WebSite";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}
. . .
保存并关闭文件。
步骤4 - 测试安装程序
要应用更改,首先重新加载Nginx。
$ sudo service nginx configtest
$ sudo service nginx reload
现在尝试访问您刚才通过浏览器浏览器访问的网站。 您应该看到一个认证窗口(其中提到“Private WebSite”,我们设置的字符串),您将无法访问该网站,直到输入正确的凭据。 如果输入您设置的用户名和密码,您将看到默认的 Nginx 主页。http://your_server_ip/auth_basic
结论
您刚刚完成了 Nginx 基本认证配置。Nginx的文档 中提供了有关此技术和其他访问限制方法的更多信息。