如何在NGINX上启用基本身份验证

时间:2019-05-19 01:25:56  来源:igfitidea点击:

Nginx是一个流行的网络服务器用于网络托管。
在本教程中,你将学习如何为你的网站配置Nginx的基本身份验证。
本教程将使用Apache工具包中的' htpasswd '命令实用程序生成加密的凭证文件。

安装Apache工具

你需要' htpasswd '命令来创建。htpasswd加密登录细节。
因此,安装apache工具在系统上获得' htpasswd '命令。

使用Apt-Get的系统:

$ sudo apt-get install apache2-utils

使用yum的系统:

$ yum install httpd-tools

2。创建凭证文件

首先你需要创建一个空的' /etc/nginx/htpasswd‘ 文件(如果不存在)。
我们还可以使用htpasswd命令中的-c来完成此操作。
但是这会覆盖现有的文件,你可能在增加用户时会不小心覆盖现有的文件。

$ touch /etc/nginx/.htpasswd

上面的命令将创建一个新的文件或只是更改现有文件的时间戳。
让我们开始使用htpasswd命令添加新用户。

$ htpasswd -m /etc/nginx/.htpasswd user1
$ htpasswd -m /etc/nginx/.htpasswd user2

-m用于创建md5加密密码。

3。编辑Nginx配置

在这一步,为服务器块编辑Nginx配置文件。
在需要进行身份验证的服务器块中添加以下条目。

server {
    listen       80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;
    location / {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

更新位置路径以限制web应用程序的特定应用程序url。

location /restricted/   {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

4。重载Nginx服务器

要将更改应用到服务器配置中,请使用以下命令重新加载Nginx服务器。

$ sudo /etc/init.d/nginx reload

systemctl用户还可以使用下面的命令。

$ sudo systemctl reload nginx.service