Re: Upstream и заголовок Host

2019-01-21 Пенетрантность Dmitriy Lyalyuev
Если коротко, то - 
https://serverfault.com/questions/598202/make-nginx-to-pass-hostname-of-the-upstream-when-reverseproxying

Второй ответ в треде.
Но сама схема, как по мне, выглядит костылем. Костылем и лечить.

-- 
With best regards,
Dmitriy Lyalyuev
dmit...@lyalyuev.info



> On Jan 22, 2019, at 08:54, CoDDoC via nginx-ru  wrote:
> 
> Доброе время суток!
> 
> Тестовый сервер: test.local. В нем тестовый кластер:
> upstream cdn {
> server :;
> server :;
> 
> }
> 
> или:
> upstream cdn {
> server cdn001.test.local:;
> server cdn002.test.local:;
> 
> }
> 
> Не принципиально, ибо "cdn001.test.local" резолвится в  и т.д.
> 
> Само собой, "proxy_http_version 1.1;" и из какого-то локейшена "proxy_pass 
> http://cdn;;
> Теперь смотрю, что приходит, например, на выбранный бэкенд.
> Ожидаю там увидеть в заголовке Host значение  или 'cdn###.test.local'.
> Вижу: http header: "Host: cdn". Что не так?
> 
> Входящий контроль проверяет правильность заголовка Host.
> Все, что не соответствуют разрешенным, посылаются на 400. Можно, конечно, 
> добавить фильтрацию по белому списку, что-то типа "такой-то IP должен 
> прислать такой-то заголовок". Но (ИМХО) костыль.
> 
> proxy_set_header 'Host' $upstream_addr; - бесполезно.
> $upstream_addr получает значение ПОСЛЕ proxy_pass.
> 
> Попутно вопрос о $upstream_addr.
> Ее можно еще как-то использовать, кроме как в логах? Например, отправить в 
> php, но без костылей?
> 
> Спасибо.
> --
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru



smime.p7s
Description: S/MIME cryptographic signature
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Upstream и заголовок Host

2019-01-21 Пенетрантность CoDDoC via nginx-ru
Доброе время суток!

Тестовый сервер: test.local. В нем тестовый кластер:
upstream cdn {
    server :;
    server :;
    
}

или:
upstream cdn {
    server cdn001.test.local:;
    server cdn002.test.local:;
    
}

Не принципиально, ибо "cdn001.test.local" резолвится в  и т.д.

Само собой, "proxy_http_version 1.1;" и из какого-то локейшена "proxy_pass 
http://cdn;;
Теперь смотрю, что приходит, например, на выбранный бэкенд.
Ожидаю там увидеть в заголовке Host значение  или 'cdn###.test.local'.
Вижу: http header: "Host: cdn". Что не так?

Входящий контроль проверяет правильность заголовка Host.
Все, что не соответствуют разрешенным, посылаются на 400. Можно, конечно, 
добавить фильтрацию по белому списку, что-то типа "такой-то IP должен прислать 
такой-то заголовок". Но (ИМХО) костыль.

proxy_set_header 'Host' $upstream_addr; - бесполезно.
$upstream_addr получает значение ПОСЛЕ proxy_pass.

Попутно вопрос о $upstream_addr.
Ее можно еще как-то использовать, кроме как в логах? Например, отправить в php, 
но без костылей?

Спасибо.
--___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru