Назад | Перейти на главную страницу

Ошибка обратного прокси-сервера nginx для удаленного сервера

Это мое 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.