Рейтинг:0

Почему сервер Nginx недоступен, несмотря на то, что порты открыты?

флаг jp

Я нахожусь в очень необычной ситуации, и я потратил почти 8 часов, пытаясь понять, в чем проблема.

Установка

У меня есть сервер под управлением Debian 11. Внутри этого сервера у меня установлена ​​виртуальная машина CentOS с KVM. Виртуальная машина размещает сложное веб-приложение за сервером Apache. Сетевым интерфейсом KVM является NAT, поэтому для доступа к веб-приложению я настроил правила переадресации портов, используя либвирт крючки, как описано здесь:

https://wiki.libvirt.org/page/Networking#Forwarding_Incoming_Connections

Моя установка перенаправляет любые входящие соединения на порт 443 на сервер Apache на виртуальной машине, и это работает нормально.

Я также настроил сервер Nginx на хост-компьютере, так как собираюсь использовать его в качестве обратного прокси-сервера. Я буду размещать другое приложение на хост-сервере через порт 9000. Используя Nginx для обратного прокси-сервера, я планирую перенаправить все запросы на https://example.com к виртуальной машине и все запросы к https://example.com/app/ к веб-приложению, работающему на порту 9000.

Эта проблема

Я установил сервер Nginx после настройки виртуальной машины и соответствующих правил переадресации портов. Но когда я пытаюсь запустить стартовую страницу сервера Nginx, она недоступна. Я понимаю, что порт 443 перенаправляется на виртуальную машину. Итак, я пытаюсь загрузить с http://example.com ожидая, что он загрузит стартовую страницу Nginx через порт 80. Но он продолжает сообщать, что веб-сайт недоступен.

Что я пробовал до сих пор?

Я подозревал, что основной причиной здесь могут быть правила переадресации портов от хоста к гостю. Поэтому я изменил правило переадресации портов с порта 443 на 8000. Таким образом, любые запросы к порту 8000 будут перенаправляться на сервер Apache на виртуальной машине. Но после этого порт 443 тоже стал недоступен.

Я попытался полностью очистить iptables, как описано здесь:

Очистить и сбросить iptables в Debian

Но все равно сервер Nginx остается недоступным.

Также, очень странно, после очистки iptables, когда я пытаюсь получить доступ к приложению, работающему на порту 9000, с помощью http://example.com:9000 я получаю 400 Ошибка неверного запроса и когда я меняю протокол на https, страница становится недоступной.

Любой совет будет очень полезен. Спасибо.

djdomi avatar
флаг za
Вопросы по установке, настройке или диагностике должны включать желаемое конечное состояние, конкретную проблему или ошибку, достаточную информацию о конфигурации и среде для ее воспроизведения и попытки решения. Вопросы без четкой формулировки проблемы бесполезны для других читателей и вряд ли получат хорошие ответы.

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

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