Настройка DNS для домена с протоколами HTTP и Gemini и/или Gopher

Настройка DNS для домена с протоколами HTTP и Gemini и/или Gopher

У меня есть блог на домене palashbauri.in, который является статическим сайтом Hugo, размещенным на Cloudflare Pages. DNS управляется Cloudflare. В настоящее время мой домен palashbauri.inимеет запись CNAME, указывающую на блог.

Итак, мой блог доступен на порту 80 и 443 с http(s). Если возможно, как мне настроить запись DNS, чтобы протоколы gemini и gopher были доступны на одном домене, например

gemini://palashbauri.in, gopher://palashbauri.in?

Я знаю, что это можно сделать с помощью поддоменов, таких как gemini://gemini.palashbauri.inили gopher://gopher.palashbauri.in, но было бы неплохо сделать его доступным без использования поддоменов?

Краткое введение в протокол Gemini: протокол сервера TCP, работающий на порту 1965.

Протокол Gopher работает на порту 70.

решение1

Если возможно, как мне настроить запись DNS, чтобы протоколы gemini и gopher были доступны в одном домене, например

Это возможно только есливсепротоколы размещены на одной системе. То есть вам нужно перенести ваш HTTP-сервис из Cloudflare и начать размещать его на той же машине, что и Gemini/Gopher. (То есть вы не можете использовать ни Cloudflare Pagesни(CDN прокси-сервера Cloudflare.) После этого вам больше не нужно ничего делать с DNS.

Когда вы просто делаете обычный запрос записей A/AAAA, DNSне знаеткакой протокол вы будете использовать с этим. Все, что он знает, это доменное имя и тип запрашиваемой записи, поэтому выне могуперенаправьте некоторые приложения на сервер Cloudflare Pages, а другие приложения — на сервер Gopher/Gemini, если все они запрашивают одно и то же имя.

Естьнекоторыйпротоколы, которые заставляют клиента намеренно сначала выполнить DNS-запрос, специфичный для протокола, — например, серверы электронной почты будут искать записи MX перед A/AAAA, а Minecraft будет искать записи SRV перед _minecraft._tcp.<domain>тем, как искать A/AAAA в самом домене, и это позволяет размещать почтовый сервер или игровой сервер на совершенно другой машине, чем все остальное в домене.

Но для большинства протоколов, не имеющих таких положений, единственный способ отличить DNS-запросы, сделанные клиентами Gemini, от запросов, сделанных HTTP-клиентами, — это использовать для них разные поддомены. (Вот почему поддомены, такие как ftpи , wwwтак часто использовались изначально.)


Единственный другой способ решения этой проблемы — иметь сервер, который принимает все соединения иреленекоторые из них на другой сервер. Например, ваш сервер Gopher может принимать HTTP-соединения, используя обычный "обратный прокси" и пересылать запросы на Cloudflare Pages – хотя вы полностью теряете преимущества размещения сайта на CF таким образом. В качестве альтернативы Cloudflare может проксировать TCP-соединения на портах 70/1965 на ваш сервер, но я думаю, что это часть только их дорогих корпоративных планов.

Связанный контент