Re: Странное поведение nginx на 2 IP

Alexey V. Karagodov kav на karagodov.name
Вт Мар 22 02:12:41 MSK 2011


для каждой пары адрес:порт думаю имеет смысел явно в конфиге указать server_name _; и/или listen ip:port default;
архив конфига приложением сюда 
для апача надо поставить rpaf 
для линукса/фри надо фаерволл настроить правильно - чтобы ОС отсылала пакеты через нужный интерфейс 

tcpdump-ом внимательно смотреть, что действительно происходит 
при проксировании рекомендую: 
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_set_header X-Real-URI $request_uri;
proxy_set_header X-Real-Request-Scheme $scheme;
proxy_set_header Accept-Encoding "";
proxy_redirect off;


On 21.03.2011, at 18:04, chinchevoy wrote:

> Есть сервер, nginx (nginx/0.7.62) ->apache2(Apache/2.2.12
> (Ubuntu), mod_php)
> На сервере 2 внешних  IP.
> 
> Есть несколько сайтов на одном IP,
> подключил второй IP, и стал наблюдать
> такую ситуацию:
> 
> При обращении к любому домену сайта,
> направленному на 2 IP, происходит
> обработка первым правилом (первым в
> смысле в списке в mc первым, не правилом
> default) в конфигах nginx (оно ведет на первый
> IP). Также при обращении к
> несуществующему поддомену любого
> сайта на 1 IP происходит обработка тем же
> правилом. 
> 
> чтобы было понятнее пример:
> сайт domen.com - 1IP, конфиг в nginx:
> 
> server {
>        listen 1IP:80;
>        server_name domen.com www.domen.com *.domen.com domen3.com
> www.domen3.com domen3.com www.domen3.com domen4.com www.domen4.com
>        server_name_in_redirect off;
>        index index.php;
>        error_page 500 502 503 504 /500.html;
>        error_page 404 /404.php;
>        proxy_set_header X-Real-IP $remote_addr;
>        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>        proxy_set_header Host $host;
>        client_max_body_size 1024M;
>        client_body_buffer_size 4M;
> 
> 
>        location / {
>                        expires 3d;
>                        root   /home/domen.com/public_html;
>                        }
> 
>        location ~*
> ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
>                        root /home/domen.com/public_html;
>                        error_page 404 = @fallback;
>                }
> 
>        location ~ (/|\.php)$ {
>                        proxy_pass         http://127.0.0.1:8888;
>                        }
> 
>        location ~ (/|\.html)$ {
>                        proxy_pass         http://127.0.0.1:8888;
>                        }
> 
>        location @fallback {
>                        proxy_pass http://127.0.0.1:8888;
>                        proxy_set_header Host $host;
>                        proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
>                        proxy_set_header X-Real-IP $remote_addr;
>                }
>                location ~ /\.ht {
>                        deny all;
>                }
> }
> 
> 
> 
> 
> domen2.com - 2IP, конфиг в nginx:
> 
> server {
>        listen 2IP:80;
>        server_name  domen2.com *.domen2.com;
>        server_name_in_redirect on;
>        index index.php;
>        error_page 500 502 503 504 /500.html;
>        error_page 404 /404.php;
>        proxy_set_header X-Real-IP $remote_addr;
>        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>        proxy_set_header Host $host;
>        client_max_body_size 1024M;
>        client_body_buffer_size 4M;
> 
> 
> 
>        location / {
>                        expires 3d;
>                        root   /home/domen2.com/public_html;
>                        }
> 
>        location ~*
> ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
>                        root /home/domen2.com/public_html;
>                        error_page 404 = @fallback;
>                }
> 
>        location ~ (/|\.php)$ {
>                        proxy_pass         http://127.0.0.1:8888;
>                        proxy_set_header X-Server-Address $server_addr;
>                        }
> 
>        location ~ (/|\.html)$ {
>                        proxy_pass         http://127.0.0.1:8888;
>                        }
> 
>        location @fallback {
>                        proxy_pass http://127.0.0.1:8888;
>                        proxy_set_header Host $host;
>                        proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
>                        proxy_set_header X-Real-IP $remote_addr;
>                        proxy_set_header X-Server-Address $server_addr;
>                }
>                location ~ /\.ht {
>                        deny all;
>                }
> }
> 
> 
> 
> при обращении к domen2.com/1.php открывается
> страница 1.php с сайта domen1.com, и переменная
> [DOCUMENT_ROOT] => /home/domen.com/public_html
> 
> При обращении к sub.domen1.com/1.php открывается
> страница 1.php с сайта domen1.com, и переменная
> [DOCUMENT_ROOT] => /home/domen.com/public_html
> 
> domen1.com имеет практически идентичный
> конфиг с сайтом domen.com, разница в location / и
> доменных адресах.
> 
> Не могу понять куда надо копать и что
> делать, вроде бы все указал как в доках
> написано, но почему то обработка
> происходит не тем конфигом, которым
> нужно...
> 
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,184348,184348#msg-184348
> 
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru




Подробная информация о списке рассылки nginx-ru