Как создать поддомен, указывающий на другой номер порта?
В моем случае я хотел бы создать поддомен с IP-адресом основного домена, но с другим номером порта. Например:
У меня основной домен как abc.com
указывая на 192.168.1.1
@ 192.168.1.1
Я хотел бы создать на поддомен с портом 8081, как показано ниже,
api.abc.com 192.168.1.1:8081
Но похоже, что это невозможно. Поэтому я попытался создать запись SRV со следующей информацией,
Name: api
Target: api.abc.com
Protocol: _http
Service: _http
Priority: 5
Weight: 5
Port: 8081
TTL: 1 hour
Но это не помогло. Есть ли способ добиться этого? Я использую Godaddy для управления своими доменами.
Может ли кто-нибудь помочь мне с этим?
1 ответ
Вы не можете назначить номер порта для имени домена или статически определенного имени хоста.
Имя хоста преобразуется в IP-адрес, а номер порта - это отдельный номер, добавляемый к IP-адресу.
Запись службы DNS (SRV) позволяет вам определить местоположение службы, включая ее IP-адрес и номер порта, но для этого требуется специальное приложение, которое будет запрашивать DNS для записи SRV ( RFC2782 называет их "клиенты, осведомленные о SRV"),
Браузер, подключающийся по протоколу HTTP, всегда будет подключаться к порту 80 (если порт не был указан на стороне клиента). http://...:8080/
). Он не будет запрашивать DNS для записи SRV.
Для вашего случая использования вы можете настроить свой HTTP-сервер (или обратный прокси-сервер) для перенаправления соединения на основе Host
HTTP-заголовок, предоставленный браузером. Функция, обычно называемая "виртуальными хостами".
В этом случае ваш сервер будет прослушивать внешние соединения через порт 80 и проверять, какой адрес запросил клиент. Если бы это было api.abc.com
он перенаправит соединение на внутренний порт 8081 (который чаще всего настраивается с добавлением внутреннего, т. е. 127.0.0.1:8081), в противном случае он будет обслуживать содержимое вашего обычного веб-сайта.
Это также возможно для соединений HTTPS, если клиентский браузер поддерживает SNI (и большинство современных браузеров поддерживают).