NGINX Password Dialog не исчезнет

Я включил защиту паролем на одном поддомене, используя 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;
        }
}

Если я наберу в test а также testing,

диалог исчезнет и снова появится.

Я не вижу никаких ошибок в NGINX error.log, access.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, все заработало.

Дженкинс, вероятно, также использует заголовки http auth.

Другие вопросы по тегам