Рейтинг:0

Обратный прокси Nginx может найти только один сайт из 3

флаг lr

Обновлять поведение, связанное с возможностью загрузки только одного сайта за раз, похоже, связано с браузером на стороне клиента. Если я открою все 3 сайта в одном окне браузера (по одной вкладке в каждом), мы получим поведение, описанное ниже. Если я использую 3 разных браузера (я использовал Edge, Opera и Chrome), то все 3 сайта загружаются должным образом. /Обновлять

У меня есть настройка обратного прокси-сервера Nginx для передачи внешнего трафика на один из 3 внутренних серверов (сервер Windows 2019 с IIS 10) на основе URL-адреса (это для среды тестирования). Сервер nginx и веб-серверы находятся в одном vlan.

Это работало как задумано до сегодняшнего утра, когда после перезагрузки веб-серверов nginx теперь может загружать только один из 3 сайтов за раз.

Если я пытаюсь открыть все 3 сайта, то первый загружается как обычно, а остальные 2 моментально выдают ошибку 404. Если я подожду несколько минут и обновлю один из 404-х, он загрузится, но первый сайт, который был в порядке, теперь перейдет на 404, то же самое произойдет, если загружен третий сайт.

Конфигурация Nginx не изменилась и загружала все 3 сайта одновременно до перезагрузки сегодня утром.

Я проверил конфиг nginx с помощью nginx -t, который вернулся нормально Я перезагрузил конфиг nginx с помощью sudo systemctl reload nginx - никаких изменений в поведении Я перезапустил сервер nginx - никаких изменений в поведении

При просмотре веб-серверов напрямую все 3 сайта работают в обычном режиме.

Я могу подключиться через порт 443 с nginx ко всем трем веб-серверам и наоборот.

Любые предложения относительно того, почему поведение могло измениться?

Конфигурация nginx выглядит следующим образом (я заменил фактические URL-адреса, но в остальном конфигурация не изменилась):

www-данные пользователя;
рабочие_процессы авто;
pid /run/nginx.pid;
включить /etc/nginx/modules-enabled/*.conf;

События {
        worker_connections 1024;
        # multi_accept on;
}
#добавлен Яном, чтобы разрешить потоковую передачу
транслировать {
# Чтобы добавить дополнительные сайты и серверы:
# Добавьте имя хоста и метку бэкенда на карту, затем добавьте блоки восходящего потока, как в примере с комментариями ниже.
# ***После того как вы обновили конфигурацию, вы ДОЛЖНЫ перезагрузить nginx с помощью следующей команды: sudo systemctl reload nginx
    карта $ ssl_preread_server_name $ имя {
   url.1.com GunServer;
   url.2.com CatServer;
   url.3.com BlueServer;
  # <здесь идет имя хоста веб-сайта> <здесь идет текстовая метка для внутреннего сервера>;
  # пример: mywebsite.com myserver;
}

# Затем создайте новый восходящий блок, используя установленную выше метку, как показано ниже.
# восходящий сервер {
        # сервер <IP:порт>;
#}

вышестоящий GunServer {
        сервер 10.25.2.12:443;
}

восходящий CatServer {
        сервер 10.25.2.13:443;
}

восходящий BlueServer {
        сервер 10.25.2.11:443;
}

сервер {
    слушать 443;
    прокси_пароль $имя;
    ssl_preread включен;
}
}

# все настройки ниже этой строки взяты из nginx example conf
флаг in
Если вы получаете ошибку 404, nginx может получить доступ к внутренним серверам. Проверьте внутренние серверы вместо nginx. Начните с логов сервера.
Ian Straton avatar
флаг lr
Дело в том, что он может достигать всех трех серверов, но не всех одновременно. Какой бы URL вы ни загружали первым, он загружается нормально, а два других мгновенно дают 404. В то же время, просматривая 3 сервера напрямую, все 3 сайта работают нормально, все три могут подключаться к серверу nginx через порт 443.
флаг in
Когда в последний раз обновлялся nginx? Какая сейчас версия, какая была раньше? (Вся версия пакета) проверьте файлы журнала вашего менеджера пакетов.
Michael Hampton avatar
флаг cz
Используют ли ваши внутренние серверы HTTP/2?
Ian Straton avatar
флаг lr
Версия Nginx — 1.18.0, с момента первоначальной установки обновлений не было (это была новая установка для этой тестовой среды). Сайты работают по HTTP 2

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.