如何在Nginx中保护网络目录的密码

在本教程中,我们将向您展示一个简单但有效的技术,如何在运行Nginx作为Web服务器时密码保护Web目录。

web项目的经理通常需要以这样或那样的方式保护他们的工作。 经常有人问如何密码保护他们的网站,而它仍在发展。

Nginx密码保护网站

Nginx密码保护Web目录

在本教程中,我们将向您展示一个简单但有效的技术,如何在运行Nginx作为Web服务器时密码保护Web目录。

如果您使用Apache Web服务器,您可以查看我们的指南对网络目录的密码保护:

  1. 密码保护Apache中的Web目录

要求

要完成本教程中的步骤,您需要具有:

  • Nginx Web服务器安装
  • 对服务器的根访问权限

第1步:创建用户和密码

1.密码保护我们的Web目录中,我们需要创建一个包含我们的加密的用户名密码的文件。

当使用Apache,您可以使用“htpasswd的 ”实用工具。 如果您的系统上安装了该实用程序,则可以使用此命令生成密码文件:

# htpasswd -c /path/to/file/.htpasswd username

当运行这个命令,你会被要求为上述用户,而且htpasswd文件将在指定的目录中创建后,设置密码。

创建Nginx用户密码文件

htpasswd:创建Nginx用户密码文件

2.如果您没有安装该工具,您可以手动创建htpasswd文件。 该文件应具有以下语法:

username:encrypted-password:comment

您将使用的用户名取决于你,选择你喜欢的。

更重要的部分是您将为该用户生成密码的方式。

第2步:生成加密密码

3.生成密码,使用Perl集成的“墓穴”的功能。

下面是该命令的示例:

# perl -le 'print crypt("your-password", "salt-hash")'

现实生活中的例子:

# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
生成加密Pasword

生成加密Pasword

现在打开一个文件,将您的用户名和生成的字符串,它用分号分隔。

这里是如何:

# vi /home/howtoing/.htpasswd

输入您的用户名和密码。 在我的case它看起来像这样:

howtoing:1xV2Rdw7Q6MK.

“:WQ”通过点击“ESC”键后保存文件。

将加密的密码添加到htpasswd

将加密的密码添加到htpasswd

第3步:更新Nginx配置

4.现在打开并编辑与您正在使用的网站相关联的Nginx的配置文件。 在我们的示例中,我们将使用默认文件:

# vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
# vi /etc/nginx/nginx.conf                [For CentOS based systems]
# vi /etc/nginx/sites-enabled/default     [For Debian based systems]

在我们的例子中,我们将用密码保护的nginx的目录的根,那就是: /usr/share/nginx/html

5.现在,添加您要保护的路径下的以下两行一节。

auth_basic "Administrator Login";
auth_basic_user_file /home/howtoing/.htpasswd;
密码保护Nginx目录

密码保护Nginx目录

现在保存文件并重新启动Nginx与:

# systemctl restart nginx
OR
# service nginx restart

6.现在复制/粘贴该IP地址在浏览器中,你应该要求密码:

Nginx密码保护登录

Nginx密码保护登录

而已! 您的主要Web目录现在受到保护。 当您要删除网站上的密码保护,只需删除您刚才添加到htpasswd文件或使用下面的命令从密码文件中删除用户添加两行。

# htpasswd -D /path/to/file/.htpasswd username