使用 Nginx 时,需要为部分站点添加密码认证,本文介绍如何配置。
Nginx 密码认证场景
Nginx 启用密码认证
yum install httpd-tools
htpasswd -bc 生成账号密码文件路径 账号名 密码
如:
htpasswd -bc /tmp/user.db admin 123456
# 示例
htpasswd -c /data/github.com/xiexianbin/configs.xiexianbin.cn/etc/tengine/tengine-passwd x
New password:
Re-type new password:
Adding password for user x
location / {
root /usr/share/nginx/html;
index index.html index.htm;
auth_basic "Personal notes, do not consciously bypass"; # 这里是提示信息
auth_basic_user_file /var/local/jekyll-docker/user.db; # 这里填写刚才生成的文件路径
}
try_files $uri $uri.html $uri/ =404;
location ~ ^/bk/ {
root /data/github.com/xiexianbin/docs.xiexianbin.cn/public/;
index index.html index.htm;
auth_basic "Please input password";
auth_basic_user_file /data/github.com/xiexianbin/configs.xiexianbin.cn/etc/tengine/tengine-passwd;
include /etc/tengine/conf.d/proxy.conf;
}
nginx -s reload
如何退出验证
登录凭证并不是放在cookie而是在header(字段是Authorization)。所以重新打开浏览器的时候就需要重新登录了。