Home Archives Categories Tags Docs

Nginx 密码认证

发布时间: 更新时间: 总字数:325 阅读时间:1m 作者: 分享

使用 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 ~ ^/blueking/ {
    auth_basic "Please input password";
    auth_basic_user_file /data/github.com/xiexianbin/configs.xiexianbin.cn/etc/tengine/tengine-passwd;
    root      /data/github.com/xiexianbin/docs.xiexianbin.cn/public/;
    index     index.html index.htm;
    include   /etc/tengine/conf.d/proxy.conf;
    }
    
  • 重新加载配置文件

    nginx -s reload
    

如何退出验证

登录凭证并不是放在cookie而是在header(字段是Authorization)。所以重新打开浏览器的时候就需要重新登录了。

完毕。

相关文章
最近更新
最新评论
加载中...