如何使用Ubuntu 14.04中的Nginx设置基本HTTP验证

2017-08-15

#介绍

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的文档 中提供了有关此技术和其他访问限制方法的更多信息。

https://www.digitalocean.com/community/tutorials/how-to-set-up-basic-http-authentication-with-nginx-on-ubuntu-14-04