Это мое nginx.conf
на cs2
:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
error_log /var/log/nginx/error.log notice;
error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream web-spr {
server web-ws:80 max_fails=1 fail_timeout=10s;
server web-ws.atcs1.dom.com:80 max_fails=1 fail_timeout=10s;
}
server {
listen interface:80;
server_name web-ws.atcs2.dom.com;
location /service {
proxy_pass http://web-spr;
}
}
А это мой /etc/hosts
на cs2
:
154.25.39.126 web-ws.atcs1.dom.com # Remote Server IP on some other network
192.168.0.1 web-ws # eth0:1 (vitual interface) IP
10.10.107.235 interface # eth0 IP
И наконец это /etc/hosts
на моем локальном ПК:
208.225.249.12 web-ws.atcs2.dom.com
154.25.39.126 web-ws.atcs1.dom.com
Теперь проблема в том, что на web-ws:80
и 'web-ws.atcs1.dom.com: 80` У меня есть работающие серверы tomcat.
Но когда я получаю к нему доступ с локального компьютера через http://web-ws.atcs2.dom.com
, на одно попадание он отвечает правильно, но при следующем попадании выдает ошибку 404. Я имею в виду, что все альтернативные совпадения возвращают желаемый результат, а в противном случае - ошибку 404.
Журналы ошибок ничего не показывают.
Есть какие-нибудь подсказки по этому поводу? Что я делаю не так?
Если 1 попадание на каждые 2 запроса работает правильно, а другой - 404, мне очень кажется, что 1 восходящий сервер работает правильно, а другой возвращает 404.
Помните, что по умолчанию nginx пробует вышестоящие серверы в циклическом режиме.
Поскольку вы не видите ошибок 5xx, это означает, что ошибки сервера нет. 404 - это ошибка клиента, что означает, что запрос не может быть обработан, поскольку ему ничего не соответствует.
Я бы посоветовал взглянуть на ваши серверы tomcat. Поскольку вы можете подключиться к 154.25.39.126 со своей машины, похоже, этот выглядит правильно. Попробуйте покопаться в том, что слушает локальный интерфейс машины cs2.
Я пока не вижу никаких проблем с nginx.