Рейтинг:0

Мультисервис с разными портами как настроить прокси nginx

флаг in

У меня есть следующая структура:

публичный ip <-> хост vm <-> vms

Есть две вмс: vm1_proxy_nginx vm2_service_docker_vm (с использованием портов 9000-9005)

Service_VM — сервер панели мониторинга, работающий на открытых портах 9001,9002 и 9005 для аутентификации, вход в систему и регистрация данных между пользователи и vm.

Теперь я перенаправил в обратном прокси-сервере nginx http и https на /9001 для входа в систему.

Потом я узнал, что эта конфигурация приводит к проблемам, потому что обратная связь не предоставляется (после успешного входа в систему сервер перенаправляется на службу панели инструментов 9002)

https://ip.ip.ip.io:9002/?токен=

Есть ли у кого-нибудь идеи, как справиться с этой проблемой без потери безопасности и проблем с ssl?

Я знаю, как переопределить службу, чтобы не использовать открытые порты, подобные этому, но пока мне нужно решение....

Рейтинг:0
флаг br

Самый простой способ решить эту проблему — сохранить все стандартные порты и просто создать 2 блока серверов в вашей конфигурации, по одному на каждый порт, выступая в роли обратных прокси-серверов, перенаправляющих весь трафик на целевой порт. Например:

сервер {
        слушать 9001 ssl http2;
        ssl_certificate *путь к сертификату*;
        ssl_certificate_key * patch-to-private-key;
        имя_сервера xyz.yourdomain.com;

              proxy_set_header Хост $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_pass http://*ipofupstreamserver*:9001;
}

сервер {
        слушать 9002 ssl http2;
        ssl_certificate *путь к сертификату*;
        ssl_certificate_key * patch-to-private-key;
        имя_сервера xyz.yourdomain.com;

              proxy_set_header Хост $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_pass http://*ipofupstreamserver*:9002;
}

сервер {
        слушать 9005 ssl http2;
        ssl_certificate *путь к сертификату*;
        ssl_certificate_key * patch-to-private-key;
        имя_сервера xyz.yourdomain.com;

              proxy_set_header Хост $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_pass http://*ipofupstreamserver*:9005;
}

Возможно, вам придется настроиться на то, хотите ли вы использовать http или https для восходящей связи, конечно, или вы можете поместить внешний интерфейс, который будет представлять интерфейс входа в систему, на стандартный порт 443, если он должен быть общедоступным, и есть множество других вариантов для настроить, но это должно помочь вам начать.

user3882511 avatar
флаг in
Спасибо за помощь. слушать 9001 означает, что я должен открыть и этот порт или? что, если я хочу использовать только входящие порты по умолчанию 80 и 443. И использовать rproxy для подключения к внутренним служебным портам 9001, 9002, 9005 Это возможно?
флаг br
@user3882511 user3882511 хорошо, если ваше приложение работает без этих портов, тогда да. Если для этого нужны эти порты, то нет. проблема в том, что если ваше приложение предполагает, что оно может использовать эти порты, и дает указание браузеру установить соединение с этими портами, но они заблокированы, то соединение не может быть установлено... поэтому, скорее всего, ничего не будет работать :)

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

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