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