LinuxForum.Fans
Тема

NginX и несколько IP

Автор: BashOrgRu 3 сообщений 2625 просмотров
#326428

Существует машинка с
1) тремя внешними IP (eth0, eth0.0, eth0.1)
2) связкой NginX + Apache2

На IP1 висят конкретные сайты, прописаны в конфиге.
На IP1, IP2 и IP3, помимо вышеозвученых конкретных сайтов, привязано множество часто меняющихся доменов.
Нужно, чтобы NginX выдавал для всех, не прописанных доменов, соответствующий определенному IP контент.

Часть конфига, где была попытка реализовать такой wildcard (термин подходит к этому случаю?):

text
upstream backend { server 127.0.0.1:81; }

server { listen IP1:80; server_name _; root /var/www/00-default; location / { try_files $uri @forb; } location @forb { deny all; } }

server { listen IP2:80; server_name _; root /var/www/01-default; location / { try_files $uri @forb; } location @forb { deny all; } }

server { listen IP3:80; server_name _; root /var/www/direct; location / { try_files $uri @backend; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } location ~ /\. { deny all; access_log off; log_not_found off; } location ~ \.php { proxy_pass http://backend; include /etc/nginx/proxy.conf; allow all;} location @backend { proxy_pass http://backend; include /etc/nginx/proxy.conf; allow all;} }

Так код выглядит уже после многодневных шаманств.
Запрос на IP1 и IP2 должны выдавать простую HTML страницу, запрос на IP3 взывает к скрипту мультиблога, который в зависимости от домена выдает нужные страницы. Так должно быть в идеале. Но в итоге IP3 работает как нужно, IP2 - тоже, а вот IP1 выдает то же самое, что и IP3. В чем дело?

В конце шаманств я даже попробовал привести IP1 и IP2 к одному виду, зарулив их на время теста в одну папку:

text

server {
    listen        IP1:80;
        server_name    _;
        root         /var/www/00-default;
        location / { try_files $uri @forb; }  
        location @forb { deny all; }    
}

server { listen IP2:80; server_name _; root /var/www/00-default; location / { try_files $uri @forb; } location @forb { deny all; } }

...и все равно по IP1 получаю контент от IP3. ЧЯНТД? При этом конкретно прописанные домены на IP1 работают как нужно.

#326432

Наверное виноват server_name
Я бы попробовал ip как server_name указать.
ы. Внимательно по ссылке про имя "_"

#326433

Но если указать в качестве server_name сам IP, разве server{} не начнет подходить лишь для этого конкретного IP, воспринимая его как имя хоста и отвергая запросы с доменов?

Войдите или зарегистрируйтесь, чтобы ответить.