Nginx 配置密码认证

发布时间: 更新时间: 总字数:325 阅读时间:1m 作者: IP属地: 分享 复制网址

使用 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
  • 在nginx配置启用密码认证
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)。所以重新打开浏览器的时候就需要重新登录了。

Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数