NGINX 密码对话框不会消失

NGINX 密码对话框不会消失

我使用 NGINX 在一个子域上启用了密码保护,并编写了一个小脚本,可以轻松添加用户。但是当我输入密码时,对话框消失并立即再次弹出。

这是我的密码生成器脚本:

#!/bin/bash
if [ -z "$1" ]
  then
    echo "Username Expected as first param"
elif [ -z "$2" ]
  then
    echo "Password Expected as second param"
else
  htpasswd -b /home/me/.passwords $1 $2
  /etc/init.d/nginx reload
fi

跑步:

./create-password test password

我可以看到以下输出:

为用户测试添加密码

[ ok ] 重新加载 nginx 配置(通过 systemctl):nginx.service。

我可以看到里面有/home/me/.passwords以下条目:

test:$apr1$t.LpBHkW$bEBEMK1HRBqAvvkB9cQ.I.

在我的 nginx 配置(/etc/nginx/sites-enabled/blah)中,有以下内容:

server {
        listen 80;
        server_name blah.example.com;
        auth_basic "Restricted Content";
        auth_basic_user_file  /home/me/.passwords;
        location / {
                proxy_pass      http://127.0.0.1:6999;
                proxy_redirect  off;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

在此处输入图片描述

如果我输入testtesting

在此处输入图片描述

对话框会消失并再次弹出。

在此处输入图片描述

我在 NGINX 中没有看到任何错误error.logaccess.log只显示基本上是错误 401,未经授权:

___.___.___.___ - test [16/Apr/2016:09:36:38 +0000] "GET / HTTP/1.1" 401 1421 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623
.110 Safari/537.36"

取消密码弹出窗口后,我看到以下内容:

在此处输入图片描述

答案1

我在该子域上运行 Jenkins,当我将 http 用户名和密码更改为与 Jenkins 用户名和密码匹配时,它就起作用了。

Jenkins 可能也正在使用 http auth 标头。

相关内容