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

Перенаправить поддомены на сервисы на разных портах одного и того же сервера

У меня есть VPS с 1 IP. Если я запускаю два сервера сокетов, один на порту 8080, а другой на порту 8081, есть ли способ сопоставить service1.mydomain.com с сервером сокетов на порту 8080 и service2.mydomain.com с сервером сокетов на порту 8081 ?

Я НЕ использую веб-сервер, а скорее сервер веб-сокетов на порту 8080 и сервер сокетов на 8081.

Я уже видел этот вопрос, который задавали раньше, но, похоже, он всегда касается Apache, где я мог редактировать файл VirtialHosts. Поскольку я не использую Apache, я не могу этого сделать.

Можно ли это сделать? Или мне придется продолжать использовать mydomain.com:8080 и mydomain.com:8081?

На сервере работает Debian 8.

Спасибо

Вы не можете напрямую использовать DNS-имя для сопоставления определенного порта, в этом случае у вас есть один IP-адрес для нескольких DNS-имен.

Лучше всего настроить Apache или NGinx в качестве обратного прокси-сервера для отображения порта службы на основе «заголовка хоста» (или имени сервера).

Вот образец для Apache :

<VirtualHost *:80>
        ServerName service1.mydomain.com
        ProxyPreserveHost On
        ProxyPass / http://service1.mydomain.com:8080/
        ProxyPassReverse / http://service1.mydomain.com:8080/
</VirtualHost>

<VirtualHost *:80>
        ServerName service2.mydomain.com
        ProxyPreserveHost On
        ProxyPass / http://service2.mydomain.com:8081/
        ProxyPassReverse / http://service2.mydomain.com:8081/
</VirtualHost>

Итак, вам нужно будет настроить обратный прокси перед вашими серверами Websocket.


Ты получишь :

  • http://service1.mydomain.com карта и служить http://service1.mydomain.com:8080

и

  • http://service2.mydomain.com карта и служить http://service2.mydomain.com:8081

Прозрачный для конечного пользователя.

Вы не можете сопоставить службы с портами с помощью DNS. Если вы открываете 8080 и 8081 для Интернета, любой домен может использоваться для доступа к любому порту. Однако, если вы публикуете URL-адреса, включая номер порта, трафик будет маршрутизироваться соответствующим образом.

Если я предполагаю, что это веб-службы, нормальным подходом было бы разместить прокси (которым может быть Apache) перед службами. Пользователи будут запрашивать service1.example.com или service2.example.com, и прокси будет подключаться к соответствующей службе. (Я использую example.com, поскольку это один из доменов, назначенных для примеров.)