<div dir="ltr">Здравствуйте.<div><br></div><div>Host здесь ни при чем.</div><div>Смотреть нужно в сторону proxy_redirect:</div><div><a href="http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_redirect">http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_redirect</a><br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">26 ноября 2013 г., 15:58 пользователь denis <span dir="ltr"><<a href="mailto:denis@webmaster.spb.ru" target="_blank">denis@webmaster.spb.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Добрый день.<br>
<br>
Не могу понять логику работы с Host. Есть приложение, которое надо проксировать на нестандартном порту (пример конфига)<br>
<br>
server<br>
{<br>
listen *:8080;<br>
<br>
server_name <a href="http://aaa.spb.ru" target="_blank">aaa.spb.ru</a>;<br>
<br>
include conf.all/tunes-main.conf;<br>
<br>
location / {<br>
proxy_redirect off;<br>
proxy_set_header X-Real-IP $remote_addr;<br>
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
proxy_set_header Host $host;<br>
<br>
proxy_pass <a href="http://192.168.2.32:8080" target="_blank">http://192.168.2.32:8080</a>;<br>
}<br>
}<br>
<br>
При обращении там идут редиректы, при этом Location возвращается без указания порта (8080) и поэтому ничего не работает.<br>
При этом установка<br>
proxy_set_header Host <a href="http://aaa.spb.ru:8080" target="_blank">aaa.spb.ru:8080</a>;<br>
после блока proxy_set_header также ничего не дает - этот блок вынесен в отдельный файл для всех сайтов.<br>
<br>
Но стоит убрать строку proxy_set_header Host $host; - и порт нормально появляется в редиректе. В чём логика? Host нельзя переопределить 2 строкой? или при этом уходит запрос с 2 хостами и система сама выбирает что больше нравится? или как? И как тогда правильнее задать в выносном блоке, можно ли как Host $host$port? Или просто не добавлять, а для секции с изменением порта - задавать Host уже в нужном location?<br>
<br>
И попутно мелкий вопросик: была ситуация наоборот, проксируем запрос внутрь с 80 порта на 8080, пока явно не прописали Host $host:80; - периодически порт 8080 проявлялся в адресной строке. Хотя на десятке других серверов такого не было, при том что секция одинаковая.<br>
<br>
______________________________<u></u>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/<u></u>mailman/listinfo/nginx-ru</a></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Best Regards,<br>
<div>Vadim Lazovskiy</div></div>
</div>