Есть примерно такой конфиг NginX, работаем в паре с апачом на 81м. На второй server{} заруливаются все запросы на домен public.com, остальные домены и прямые запросы по IP - на первый server{}
upstream backend { server 127.0.0.1:81; }
server {
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;}
}
server {
root /var/www/public;
server_name public.com;
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;}
}
К машине привязано два IP: 1.1.1.1 и 2.2.2.2; Как сделать, чтобы второй server{} отзывался лишь по 2.2.2.2, все остальные запросы по 2.2.2.2 заруливались в 403, а первый server{} срабатывал по 1.1.1.1 с любым запросом?
Пытался вставлять в существующие listen 1.1.1.1:80; и listen 2.2.2.2:80;, создавал для 2.2.2.2 отдельный server{} без определения хоста с deny all - все равно запросы на 2.2.2.2 обрабатывались первым server{}