2015-07-17 3 views
7

Я использовал proxy_set_header Host $host;, чтобы установить заголовок хоста на исходный узел запроса. В nginx 1.4.1 это работало нормально. Теперь, после обновления до 1.8.0, я получаю локальный IP-адрес вместо хоста, переданного браузером.

Почему это произошло и как его исправить?

+0

Я полагаю, что это вызвано 'proxy_set_header Host $ host;' в 'nginx.conf' и, похоже, также связано с директивой' server_name'. Я еще не определил, как они взаимодействуют, но я нашел установку 'proxy_set_header Host $ host' в вашей директиве' location', а также опускание 'server_name' полностью работает в нашем случае – Basic

+0

Вы когда-нибудь находили решение? У меня такая же проблема ... 1.7 работал, но последний в ppa (1.12) этого не делает. Ничто из того, что я делаю, посылает правильный заголовок хоста вверх по течению –

ответ

0

tl; dr; Я не уверен, когда он изменился, но более новые версии Nginx - вместо ssl_protocols ...; - ваш конф должно быть:

proxy_ssl_server_name on; proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Источник: https://stackoverflow.com/a/25330027

===

Если вы были похожи на меня, вы неправильно читали файлы журнала и видели host=example.com. Вместо того, чтобы быть хостом, отправленным в начало, это, по-видимому, означает виртуальный хост host-as-defined-in-nginx-conf i.e.

(Включение error_log debug; показал, что заголовок хоста был быть установлен правильно.)

Файл журнала должен также содержать ошибку типа «SSLv3 отказа оповещения рукопожатия».

Смежные вопросы