#linux #nginx #nginx-reverse-proxy #nginx-config
#linux #nginx #nginx-reverse-proxy #nginx-config
Вопрос:
Мой оригинальный nginx.conf:
events {}
http {
server {
include credentials.conf;
listen 80;
location / {
proxy_set_header Authorization $credentials;
proxy_pass [website_of_choice];
}
}
}
Мои учетные данные.conf:
set $credentials 'Basic [long_encoded_login_details]';
Но это не сработает при запуске nginx.
Комментарии:
1. Это должно сработать, какую ошибку вы получаете?
2. Когда у меня есть жестко заданные учетные данные = мой iframe в моем веб-приложении отображает его содержимое. Когда я использую описанный выше метод: я получаю сообщение «localhost не удалось подключиться» в iframe.
3. Включите режим отладки (найдите директиву error_log и используйте loglevel
debug
), чтобы увидеть фактический запрос, отправленный на серверную часть. Эта конфигурация будет работать. Это работает в моей лаборатории.
Ответ №1:
.conf
В некоторых случаях использование в качестве окончания файла не будет работать. Это должно выдать ошибку при попытке перезагрузить nginx sudo nginx -s reload
или nginx -t
configtest. Это зависит от вашего nginx.conf. Проверьте, есть ли какая-либо include
директива, включающая что-либо *.conf
из данного каталога.
используйте это
учетные данные.включают
set $credentials 'Basic [long_encoded_login_details]';
nginx.conf
events {}
http {
server {
include credentials.include;
listen 80;
location / {
proxy_set_header Authorization $credentials;
proxy_pass [website_of_choice];
}
}
}
Комментарии:
1. Теперь я попробовал оба метода. Оба (в журналах docker) говорят 2021/04/05 12:49:04 [emerg] 1#1: сбой open() «/etc/nginx/credentials.conf» (2: нет такого файла или каталога) в /etc/nginx/nginx.conf:4. Я попытался переделать, но включил полный / относительный путь к файлу, но он по-прежнему выглядит в /etc/nginx, а не в указанном мной пути к файлу.
2. хорошо… где у вас есть файл credentials.include? в /etc/nginx/? Если это так, то включение будет
include credentials.conf
. Включение всегда относится к/etc7nginx/
. Пожалуйста, проверьте это.