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