У меня есть 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, поскольку это один из доменов, назначенных для примеров.)