excoder
@excoder
Making things happen

Разводка по сервисам (порт + машина в LAN) через домен третьего уровня

Пусть:
  • На 192.168.1.1:5050 крутится один сервис, я хочу получать к нему доступ по app1.site.ru
  • На 192.168.1.2:4040 крутится второй сервис, соответственно — хочу по app2.site.ru
  • На 192.168.1.3:3030 крутится третий сервис, хочу туда по app3.site.ru

Доступ по appN.site.ru, N=1,2,3 — нужен без указания порта, т.е. по 80.

Да, при этом по www.site.ru и site.ru доступен веб-сайт вообще не с этого сервера. + почта по алиасу mail.site.ru и прочие DNS-записи.

Понятно, что порты и машины я разведу на сервере.

А в целом как это решить?
  • Вопрос задан
  • 2617 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ADOLF88HITLER
Если у вас на сервере стоит nginx, то могу предложить следующее решение:

Допустим:
ip сервера site.ru: 1.1.1.1;
ip маршрутизатора, который связывает NAT и Сеть: 2.2.2.2.
В маршрутизаторе проброс портов:
5050 на 192.168.1.1:5050;
4040 на 192.168.1.2:4040;
3030 на 192.168.1.3:3030.
И так далее.

В nginx.conf пишете:

server {
listen 1.1.1.1:80;
server_name: app1.site.ru;
location / {
proxy_pass http: //2.2.2.2:5050; #убрать пробел после http:, а то парсер съел.
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}

И соответственно на другие домены.
По данной схеме сервер с app1.site.ru будет направлять на 2.2.2.2:5050, маршрутизатор через Port Forwarding перенаправит уже на 192.168.1.1:5050.
Тут всё примерно, и ещё есть куда улучшать, но думаю смысл ясен. Это всё при условии что я вас правильно понял :)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы