Re: Реверс прокси -- проблема с localhost
Maxim Dounin
mdounin на mdounin.ru
Пн Окт 18 19:36:38 MSD 2010
Hello!
On Mon, Oct 18, 2010 at 11:02:47AM -0400, dr.gigabit wrote:
> Привет всем!
>
> Пробую использовать Nginx в качестве
> реверс прокси (нужно разные субдомены
> отфорвардить один на apache, другой на IIS,
> которые работают соответственно на
> разных портах.)
> Пробую с Apache.
>
> server {
> listen 80 default_server;
> server_name server.com;
>
> #charset koi8-r;
>
> #access_log logs/host.access.log main;
>
> location / {
> proxy_redirect off;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_pass 127.0.0.1:8080/test/;
> }
> }
>
> Если зайти из Интернета, по адресу
> http://server.com, почему-то перекидывает на
> localhost/test. Такое ошущение, что host header не
> "форвардится".
Если есть ощущение - то его следует подтвердить или опровергнуть с
помощью, e.g., tcpdump'а. Есть мнение, что ощущение - неверное.
Вообще, какой редирект выдать - решает бекенд, и во многих случаях при
редиректах используется каноническое имя сервера прописанное в
конфигах, а не то что было передано в заголовке Host. Возможных
решений два:
1. Разбираться с бекендом.
2. Использовать proxy_redirect в nginx'е.
Первый вариант выходит за рамки данной рассылки, а второй -
подробно описан в документации тут:
http://sysoev.ru/nginx/docs/http/ngx_http_proxy_module.html#proxy_redirect
Maxim Dounin
Подробная информация о списке рассылки nginx-ru