前言

Nginx为Web服务设置访问密码

准备工作

  • 安装Nginx时包含htpasswd命令

生成密码

直接生成到Nginx配置文件目录下

  • 适用于服务器上有htpasswd命令的情况下
1
htpasswd -c /etc/nginx/passwd admin
1
2
3
New password: 
Re-type new password:
Adding password for user admin

生成密码后手动复制到配置文件目录下

  • 适用于服务器上没有htpasswd命令的情况下,在其他机器上生成密码,然后复制到Nginx配置文件目录下
  1. 在其他机器上生成密码
1
htpasswd -c passwd admin
1
2
3
New password: 
Re-type new password:
Adding password for user admin
  1. 复制密码
1
cat passwd
  1. 在包含Nginx的服务器上创建密码文件
1
echo "admin:$xxxx$xxxxxxxx$xxxxxxxxxxxxxxxxxxxxxx" > /etc/nginx/passwd

修改配置文件

  • 为指定Web服务器开启密码验证

auth_basic:配置提示信息
auth_basic_user_file:配置密码文件

/etc/nginx/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name localhost;

auth_basic "Login";
auth_basic_user_file /etc/nginx/passwd;

location / {
index index.html index.htm;
}
}

完成

参考文献

腾讯云开发者社区——菲宇