Это канонический вопрос о разрешении DNS / имен хостов на IP / порты
Пример 1
Я использую веб-сервер на порту 80, а другой - на порту 87. Я хотел бы использовать DNS, чтобы www.example.com перешел на порт 87. Как я могу сделать это, используя только DNS?
Пример 2
Я запускаю службу на своем сервере через нестандартный порт. Как я могу заставить клиентов автоматически подключаться к этому нестандартному порту? Могу ли я использовать DNS? Есть ли какая-то конкретная поддержка приложений, где DNS может указывать IP и порт?
Пример 3
Поддерживают ли некоторые протоколы приложений определенную осведомленность об имени хоста и позволяют ли предпринимать специальные действия на основе этой информации? Есть ли другие вопросы о сбое сервера, которые охватывают некоторые из них?
Commandeering:
Первоначально этот вопрос задавался о запуске IIS и Apache на одном и том же сервере, но те же концепции можно применять к любому серверному программному обеспечению, получающему соединения от клиентов. В приведенных ниже ответах описаны технические проблемы и способы использования поддержки DNS и протоколов приложений для назначения номера порта для подключения клиента.
источник
Ответы:
Вы не можете использовать DNS, чтобы указать на порт (если клиент не поддерживает записи SRV, большинство не делает).
Сайты и протоколы с заголовками хоста
Для этого вам нужно будет установить какой-нибудь интерфейсный метод. Обычно вы используете интерфейсный веб-сервер или специальное прокси-сервер для переадресации соединения с порта 80 на порт! 80 на основе имени сервера, запрашиваемого в заголовке. Некоторые брандмауэры также могут пересылать сообщения на основе заголовка узла.
SRV Records
Некоторые клиенты поддерживают поиск записей SRV, которые указывают имя хоста и номер порта сервера для указанной службы (т. Е. Пользователь указывает «example.com», клиент ищет запись SRV и получает «server101.example.com» на порт «255»). "; затем подключается к этому). Некоторые клиенты также реализуют это там, где это не требуется (например, мой последний смартфон просматривал записи SRV при настройке новой учетной записи электронной почты).
К сожалению, поддержка SRV-записей крайне редка. Его поддерживают только несколько известных протоколов (Jabber / XMPP, Kerberos, LDAP, SIP), и не каждый клиент поддерживает его, даже если это необходимо.
источник
Когда вы набираете http://www.domain.com в своем браузере, подразумевается, что порт HTTP находится на 80. Следовательно, нет прямого способа указать www.domain.com на порт 87, если у вас уже есть служба работает на этом порту в IIS.
При этом есть несколько «обходных путей».
Сэм прав, DNS не зависит от портов. Перенаправление портов любого рода происходит службой, работающей на этом порту. Поэтому вам нужно что-то сделать с IIS, чтобы это произошло, если у вас нет другого выбора, кроме как оставить это на порте 80.
Я также обошел вашу ситуацию с помощью mod_proxy на Apache, не уверенный, есть ли способ сделать это с IIS.
источник
Боюсь, доменные имена могут быть связаны только с IP-адресом, а не с портом.
Большинство веб-серверов, например (Apache, IIS и т. Д.), Позволяют размещать два домена на одном и том же IP-адресе, используя тот факт, что веб-запросы содержат поле заголовка узла, которое идентифицирует домен в самом запросе.
Если вы скажете, какой веб-сервер вы используете, я уверен, что люди могут указать вам соответствующую документацию для настройки вашего сервера, как вы хотите
источник
Технически вы можете использовать записи SRV на DNS-серверах, как определено в RFC 2782, чтобы указать браузерам, какие серверы обрабатывают http, на каких портах (суб) -домена:
Это хорошо работает для многих протоколов / служб, особенно когда использование записей SRV уже определено в спецификации протокола.
Однако, как говорится в этом « Зале позора », большинство веб-браузеров / клиентов не поддерживают это (для HTTP). Также посмотрите, почему-делают-браузеры-не-используют-srv-records .
Дело в том, что SRV не включен в протокол http как необходимость, поэтому каждый браузер, который его реализует, разрешает URL-адреса по-другому, чем браузеры, которые этого не делают.
Таким образом, вы должны использовать это только как некоторую дополнительную балансировку нагрузки, когда неважно, какой сервер выбран с точки зрения контента. «Необязательно», потому что это не уравновесит большую часть нагрузки, если только несколько клиентов реализуют это.
источник
DNS не имеет возможности перенаправить на определенный порт, все, что заботит DNS - это разрешение IP-адреса имени и наоборот.
Некоторые службы, такие как DNS-провайдеры с динамическим IP, такие как NO-IP, предоставляют услуги, которые могут помочь вам сделать нечто подобное, чтобы обойти блокировку IP-адресов на домашних службах DNS.
источник
Чтобы использовать любую (TBT) службу на нестандартном порту и не записывать порт в URI, каждый может использовать записи SRV, определенные в RFC 2782.
Все остальные http-хосты в зоне по-прежнему будут обслуживаться по умолчанию через порт 80
источник
Самый простой способ - использовать обратный прокси-сервер и установить его в качестве веб-прокси. Вы можете настроить
nginx
илиapache
для него. В прошлом у меня была в основном та же проблема, и я создал инструмент для простой настройки такой конфигурации. Ergo: https://github.com/cristianoliveira/ergoЯ использовал это и в основном работает как шарм :)
источник
Один из подходов к развертыванию двух веб-серверов на одном хосте состоит в том, чтобы оба они прослушивали порт 80 на двух разных IPv6-адресах. IPv6 официально указывает, что вы можете назначить два адреса интерфейсу, и есть достаточно адресов IPv6, что вы можете сделать это без исчерпания адресов.
Это перспектива на будущее, и каждый из двух ваших доменов может иметь записи AAAA, указывающие на разные IP-адреса, поэтому домены заканчиваются на разных веб-серверах.
Если у вас также есть один IPv4-адрес, вы можете использовать порт 80 на IPv4-адресе для запуска обратного прокси-сервера. Таким образом, клиенты, использующие только IPv4, могут получить доступ к обоим вашим веб-серверам. Подход обратного прокси-сервера работает даже в том случае, если некоторые веб-серверы находятся на том же хосте, что и обратный прокси-сервер, а некоторые веб-серверы находятся на других хостах.
В такой настройке
example.org
могут быть адреса,192.0.2.1
а2001:db8::1
покаexample.net
есть адреса192.0.2.1
и2001:db8::2
.источник