
我的部落格位於domain 上palashbauri.in
,這是一個託管在Cloudflare Pages 上的靜態hugo 網站。 DNS 由 Cloudflare 管理。目前我的網域palashbauri.in
有指向部落格的 CNAME 記錄。
因此,我的部落格可透過 http(s) 在連接埠 80 和 443 上存取。如果可能的話,我應該如何配置我的 DNS 記錄以使 Gemini 和 gopher 協定在同一網域上可訪問,例如
gemini://palashbauri.in
, gopher://palashbauri.in
?
gemini://gemini.palashbauri.in
我知道,我可以使用或等子網域使其工作gopher://gopher.palashbauri.in
,但如果不使用子網域即可存取它會很好嗎?
Gemini 協定的簡短介紹:在連接埠 1965 上執行的 TCP 伺服器協定。
Gopher 協定運行在連接埠 70 上。
答案1
如果可能的話,我應該如何配置我的 DNS 記錄以使 Gemini 和 gopher 協定在同一網域上可訪問,例如
這只有在以下情況才有可能全部協議託管在同一系統上。也就是說,您需要將 HTTP 服務移出 Cloudflare,並開始將其託管在與 Gemini/Gopher 相同的電腦上。 (也就是說,您既不能使用 Cloudflare Pages也不Cloudflare 代理 CDN。
當您只是定期查詢 A/AAAA 記錄時,DNS不知道您將使用什麼協議。它所知道的只是所要求的網域和記錄類型,因此您不能如果某些應用程式都要求完全相同的名稱,則將某些應用程式重新導向至 Cloudflare Pages 伺服器,並將其他應用程式重新導向至您的 Gopher/Gemini 伺服器。
有一些讓客戶端故意先進行特定於協定的 DNS 查詢的協定 - 例如,電子郵件伺服器將在 A/AAAA 之前查找 MX 記錄,而 Minecraft 將_minecraft._tcp.<domain>
在網域本身上查找 A/AAAA 之前查找 SRV 記錄,這允許郵件伺服器或遊戲伺服器託管在與網域中其他所有伺服器完全不同的電腦上。
但對於大多數沒有此類規定的協議,區分 Gemini 用戶端發出的 DNS 請求與 HTTP 用戶端發出的請求的唯一方法是為它們使用不同的子網域。 (這就是為什麼像ftp
和 這樣的子域www
首先如此常用。)
唯一的其他解決方法是擁有一個接受所有連接的伺服器繼電器其中一些到另一台伺服器。例如,您的 Gopher 伺服器可以使用常見的「反向代理」接受 HTTP 連接,並將請求轉發到 Cloudflare Pages – 儘管您完全失去了在 CF 上託管網站的優勢。或者,Cloudflare 可以將連接埠 70/1965 上的 TCP 連線代理到您的伺服器,但我認為這只是他們昂貴的企業計劃的一部分。