web项目的经理通常需要以这样或那样的方式保护他们的工作。 经常有人问如何密码保护他们的网站,而它仍在发展。
Nginx密码保护Web目录
在本教程中,我们将向您展示一个简单但有效的技术,如何在运行Nginx作为Web服务器时密码保护Web目录。
如果您使用Apache Web服务器,您可以查看我们的指南对网络目录的密码保护:
要求
要完成本教程中的步骤,您需要具有:
- Nginx Web服务器安装
- 对服务器的根访问权限
第1步:创建用户和密码
1.密码保护我们的Web目录中,我们需要创建一个包含我们的加密的用户名和密码的文件。
当使用Apache,您可以使用“htpasswd的 ”实用工具。 如果您的系统上安装了该实用程序,则可以使用此命令生成密码文件:
# htpasswd -c /path/to/file/.htpasswd username
当运行这个命令,你会被要求为上述用户,而且htpasswd文件将在指定的目录中创建后,设置密码。
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
现在打开一个文件,将您的用户名和生成的字符串,它用分号分隔。
这里是如何:
# vi /home/youcl/.htpasswd
输入您的用户名和密码。 在我的case它看起来像这样:
youcl:1xV2Rdw7Q6MK.
“:WQ”通过点击“ESC”键后保存文件。
将加密的密码添加到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/youcl/.htpasswd;
密码保护Nginx目录
现在保存文件并重新启动Nginx与:
# systemctl restart nginx OR # service nginx restart
6.现在复制/粘贴该IP地址在浏览器中,你应该要求密码:
Nginx密码保护登录
而已! 您的主要Web目录现在受到保护。 当您要删除网站上的密码保护,只需删除您刚才添加到htpasswd文件或使用下面的命令从密码文件中删除用户添加两行。
# htpasswd -D /path/to/file/.htpasswd username