Есть вот такая конфигурация:
eth1 с адресом 192.168.0.1
алиасы 192.168.1.1, 192.168.1.2, 192.168.1.3
iptables:
-A PREROUTING -d 192.168.0.1 -i eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j REDIRECT --to-ports 808
-A PREROUTING -d 192.168.1.1 -i eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j REDIRECT --to-ports 808
-A PREROUTING -d 192.168.1.2 -i eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j REDIRECT --to-ports 808
nginx.conf:
server {
listen 192.168.0.1:808 default;
location / {
proxy_pass http://192.168.0.1:80/;
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;
}
}
server {
listen 192.168.1.1:808;
server_name domain1.local;
location / {
proxy_pass http://192.168.1.1:80/;
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;
}
}
server {
listen 192.168.1.2:808;
server_name domain2.local;
location / {
proxy_pass http://192.168.1.2:80/;
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;
}
}
В Апаче виртуальные хосты настроены, всё работает.
Пытаемся добавить domain3.local на 192.168.1.3, прописываем по аналогии конфиги nginx и apache.
http://192.168.1.3 и http://192.168.1.3:808 обрабатываются как надо.
Добавляем правило в iptables - и запрос http://192.168.1.3 обрабатывается дефолтным вирт. хостом апача (192.168.0.1), а не тем, которым нужно. При этом http://192.168.1.3:808 обрабатывается правильно.
Вопросы - почему такое может быть и как это правильно диагностировать?