nginx 代理设置访问密码(不依赖htpasswd工具)

文章目录
  1. 1. Nginx访问密码配置(无需htpasswd)
    1. 1.1. 步骤1:创建密码文件
    2. 1.2. 步骤2:编辑Nginx配置文件
    3. 1.3. 步骤3:重新加载
    4. 1.4. 步骤4:测试访问

Nginx访问密码配置(无需htpasswd)

要在Nginx中配置访问密码而不依赖于htpasswd等第三方工具,可以按照以下步骤手动创建密码文件并在Nginx配置中引用它。

步骤1:创建密码文件

  1. 生成加密密码:使用编程语言或在线工具生成加密密码。例如,使用Python的crypt模块:

1
2
import crypt
print(crypt.crypt("your_password", "salt"))
  1. 保存密码文件:创建一个文本文件(如passwords),并将加密后的密码保存在其中,格式为:

1
username:$apr1$...$...
  1. 存放密码文件:将passwords文件放置在安全的位置,如/etc/nginx/目录下。

步骤2:编辑Nginx配置文件

  1. 打开配置文件:编辑Nginx主配置文件/etc/nginx/nginx.conf或相关虚拟主机配置文件。

  2. 添加认证指令:在相应的server块或location块中添加以下指令以启用基本认证:

1
2
3
4
5
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/passwords;
# 其他配置...
}
  • auth_basic "Restricted";定义了认证提示信息。

  • auth_basic_user_file指定之前创建的密码文件路径。

步骤3:重新加载

保存配置文件更改后,重启Nginx服务以应用新设置:

1
nginx -s reload

步骤4:测试访问

尝试访问网站,系统应提示输入用户名和密码。使用在passwords文件中定义的凭据登录,若正确,可正常访问网站。