如何设置HTTP认证与Nginx在Ubuntu 12.10

使用本教程在Ubuntu 12.10上使用Nginx设置HTTP验证。

什么是红色表示

用户需要输入或定制的生产线将在红色在本教程! 其余的应该主要是复制和粘贴。

关于Nginx

Nginx(发音为'engine x')是一个HTTP和反向代理服务器,以及由Igor Sysoev编写的邮件代理服务器,与apache相比,它是灵活和轻量级的程序。 官方nginx的文档是在这里

先决条件

作为先决条件,我们假设您已经阅读了有关如何设置您的VPS的文章,并且已经安装了Nginx。 如果没有,你可以找到在此设立VPS的文章初始服务器设置的文章 ,你可以找到更多的信息, 安装nginx的在我们的社区。

第1步:Apache Utils

我们需要htpasswd来为使用基本认证的用户创建和生成加密。 使用以下命令安装apache2-utils。

  sudo apt-get install apache2-utils

第2步:创建用户和密码

在由nginx提供的网站目录下创建一个.htpasswd文件。 以下命令将创建该文件,并将用户和加密密码添加到该文件。

  sudo htpasswd -c /etc/nginx/.htpasswd exampleuser

该工具将提示您输入密码。

New password:
Re-type new password:
Adding password for user exampleuser

htpasswd文件的结构将是这样:

login:password

注意,这个htpasswd应该可以通过运行Nginx的用户帐户访问。

第3步:更新Nginx配置

您的网站的nginx配置文件应该在/ etc / nginx / sites-available /下。 在下面添加要保护的域路径的两个条目。

    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;

第二行是您的网站的htpasswd文件的位置。

例如,让我们说我们的nginx配置文件是/etc/nginx/sites-available/website_nginx.conf,使用vi或你选择的任何编辑器打开文件。

 
  sudo vi /etc/nginx/sites-available/website_nginx.conf

然后将这两行添加到以下路径中:

 
 server {
  listen       portnumber;
  server_name  ip_address;
  location / {
      root   /var/www/mywebsite.com;
      index  index.html index.htm;
      auth_basic "Restricted";                                #For Basic Auth
      auth_basic_user_file /etc/nginx/.htpasswd;  #For Basic Auth
  }
}

第4步:重新加载Nginx

为了反映我们网站上的更改重新加载nginx配置,并尝试访问已使用基本身份验证保护的域。

$ sudo /etc/init.d/nginx reload
* Reloading nginx configuration...                       

现在尝试访问您的网站或您保护的域路径,您会注意到一个浏览器提示,要求您输入登录名和密码。 输入在创建.htpasswd文件时使用的详细信息。 提示不允许您访问该网站,直到您输入正确的凭据。

瞧! 你有你的网站域路径安全使用Nginx的基本认证。