<HTML><BODY>Доброе время суток!<br><br>Тестовый сервер: test.local. В нем тестовый кластер:<br>upstream cdn {<br>    server <IP_1>:<port_1>;<br>    server <IP_2>:<port_2>;<br>    ....<br>}<br><br>или:<br>upstream cdn {<br>    server cdn001.test.local:<port_1>;<br>    server cdn002.test.local:<port_2>;<br>    ....<br>}<br><br>Не принципиально, ибо "cdn001.test.local" резолвится в <IP_1> и т.д.<br><br>Само собой, "proxy_http_version 1.1;" и из какого-то локейшена "proxy_pass http://cdn;"<br>Теперь смотрю, что приходит, например, на выбранный бэкенд.<br>Ожидаю там увидеть в заголовке Host значение <IP> или 'cdn###.test.local'.<br>Вижу: http header: "Host: cdn". Что не так?<br><br>Входящий контроль проверяет правильность заголовка Host.<br>Все, что не соответствуют разрешенным, посылаются на 400. Можно, конечно, добавить фильтрацию по белому списку, что-то типа "такой-то IP должен прислать такой-то заголовок". Но (ИМХО) костыль.<br><br>proxy_set_header 'Host' $upstream_addr; - бесполезно.<br>$upstream_addr получает значение ПОСЛЕ proxy_pass.<br><br>Попутно вопрос о $upstream_addr.<br>Ее можно еще как-то использовать, кроме как в логах? Например, отправить в php, но без костылей?<br><br>Спасибо.<br>--</BODY></HTML>