Почему мои учетные данные не передаются в мой файл nginx.conf?

#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/ . Пожалуйста, проверьте это.