域名、解析、代理:普通人也能看懂的反向代理實(shí)戰(zhàn)OFIRM官網(wǎng)【順帶的了解了整個(gè)互聯(lián)網(wǎng)的業(yè)務(wù)之路基】

域名、解析、代理:普通人也能看懂的反向代理實(shí)戰(zhàn)OFIRM官網(wǎng) www.OFIRM.org【OFIRM 萬(wàn)物理論 官網(wǎng)】

【此文的源頭:買了域名,建站各種審差啥的,關(guān)鍵內(nèi)容太超前啦,麻煩的緊呀! 那有沒有一種可能,直接把我的域名掛到博客上去呢?肯定有,花點(diǎn)小錢就能直接辦到,有沒有免費(fèi)的方法呢?肯定有啦!并且作為互聯(lián)網(wǎng)小白,通過一通實(shí)踐,你會(huì)對(duì)整個(gè)網(wǎng)絡(luò)的底層來(lái)個(gè)充分的了解,比如「域名、DNS解析、CDN代理」等等理解更加深刻,哈哈】【順帶的了解了整個(gè)互聯(lián)網(wǎng)的業(yè)務(wù)之路基】

我買了一個(gè)自己的域名,也有一個(gè)免費(fèi)的博客(比如Neocities、GitHub Pages),能不能讓別人輸入我的域名時(shí),直接打開我的免費(fèi)博客,但地址欄永遠(yuǎn)顯示我的域名,不會(huì)跳轉(zhuǎn)到平臺(tái)的原始地址?

聽起來(lái)像個(gè)魔術(shù),但只要你順著互聯(lián)網(wǎng)的底層邏輯一步步走,這個(gè)想法不僅能實(shí)現(xiàn),還能讓你徹底搞懂「域名、DNS、代理」這些聽起來(lái)很玄乎的概念。

我花了兩個(gè)小時(shí),親手把這個(gè)想法變成了現(xiàn)實(shí)?,F(xiàn)在,輸入 www.ofirm.org,你看到的是我放在Neocities上的博客,但地址欄里,永遠(yuǎn)穩(wěn)穩(wěn)停著我的域名。

這篇文章,我會(huì)用最通俗的語(yǔ)言,把整個(gè)過程和背后的原理講清楚,看完你也能照著做。


一、最開始的踩坑:原來(lái)我想的方法全錯(cuò)了

最開始,我以為這是個(gè)很簡(jiǎn)單的事,不就是把域名指向博客地址嗎?結(jié)果試了三種方法,全失敗了。

1. 301重定向:最省事,但也最沒用

我最先想到的,就是域名注冊(cè)商自帶的「域名轉(zhuǎn)發(fā)」功能。 在NameSilo后臺(tái),我把 ofirm.org 設(shè)置成301重定向到 ofirm.neocities.org。 效果確實(shí)有:輸入我的域名,能打開博客。 但問題也很致命:地址欄會(huì)直接跳轉(zhuǎn)到Neocities的原始地址。 這根本不是我想要的效果,我要的是「藏住源站地址」,而不是「跳轉(zhuǎn)到源站地址」。

2. CNAME解析:看起來(lái)對(duì),其實(shí)根本行不通

然后我試了CNAME記錄。 在DNS設(shè)置里,把 www.ofirm.org 解析成 ofirm.neocities.org。 我以為這樣瀏覽器就會(huì)直接顯示我的域名,結(jié)果打開頁(yè)面,直接報(bào)了個(gè) 403 Forbidden 錯(cuò)誤。

為什么? 因?yàn)镃NAME只是「指路」,它告訴瀏覽器:「你要找的 www.ofirm.org,其實(shí)就是 ofirm.neocities.org」。 但瀏覽器訪問Neocities服務(wù)器時(shí),會(huì)帶著一個(gè)叫 Host 的請(qǐng)求頭,告訴服務(wù)器:「我是沖著 www.ofirm.org 來(lái)的」。 Neocities服務(wù)器一看:「我根本不認(rèn)識(shí)這個(gè)域名啊」,于是直接拒絕了訪問。 你必須在Neocities后臺(tái)綁定你的域名,它才會(huì)認(rèn)。但很多免費(fèi)平臺(tái)根本不支持自定義域名,或者需要付費(fèi)才能用。

3. Cloudflare Page Rules:換了個(gè)地方跳轉(zhuǎn)而已

接著我又試了Cloudflare的Page Rules,想在這里做個(gè)跳轉(zhuǎn)。 結(jié)果發(fā)現(xiàn),Page Rules的「Forwarding URL」本質(zhì)上還是301重定向,地址欄還是會(huì)變。 折騰了一圈,我才明白: 所有的「跳轉(zhuǎn)」,本質(zhì)上都是告訴瀏覽器「去訪問另一個(gè)地址」,地址欄必然會(huì)變。 想要地址欄不變,必須用「反向代理」。


二、關(guān)鍵突破:反向代理到底是什么?

反向代理,聽起來(lái)很高大上,其實(shí)原理特別簡(jiǎn)單。 你可以把它想象成一個(gè)「隱形的搬運(yùn)工」:

  1. 用戶輸入你的域名 www.ofirm.org,請(qǐng)求先發(fā)到Cloudflare的服務(wù)器

  2. Cloudflare的服務(wù)器在后臺(tái),偷偷去 ofirm.neocities.org 把博客內(nèi)容拉回來(lái)

  3. 再把內(nèi)容原封不動(dòng)地返回給用戶的瀏覽器

整個(gè)過程,用戶的瀏覽器只和Cloudflare打交道,根本不知道Neocities的存在,所以地址欄永遠(yuǎn)顯示你的域名。 這就是我想要的效果:域名是我的,內(nèi)容存在免費(fèi)平臺(tái)上,別人看不到源站地址

而實(shí)現(xiàn)這個(gè)「隱形搬運(yùn)工」,最簡(jiǎn)單的工具就是Cloudflare Workers。 它是Cloudflare提供的一個(gè)無(wú)服務(wù)器函數(shù)服務(wù),你可以寫幾行代碼,讓它幫你處理所有請(qǐng)求。


三、手把手實(shí)戰(zhàn):10分鐘搞定反向代理

整個(gè)過程不需要寫復(fù)雜的代碼,復(fù)制粘貼就能完成,全程免費(fèi)。

第一步:準(zhǔn)備工作

  1. 你有一個(gè)自己的域名(在任何注冊(cè)商買的都可以)

  2. 注冊(cè)一個(gè)Cloudflare免費(fèi)賬號(hào):https://www.cloudflare.com

第二步:把域名接入Cloudflare

  1. 登錄Cloudflare,點(diǎn)擊「Add Site」,輸入你的域名

  2. 選擇「Free 免費(fèi)套餐」,繼續(xù)下一步

  3. Cloudflare會(huì)自動(dòng)掃描你現(xiàn)有的DNS記錄,確認(rèn)無(wú)誤后繼續(xù)

  4. Cloudflare會(huì)給你兩個(gè)NS服務(wù)器地址,復(fù)制下來(lái)

  5. 回到你的域名注冊(cè)商后臺(tái),把原來(lái)的NS服務(wù)器替換成這兩個(gè)地址

  6. 等待5-15分鐘,DNS生效后,Cloudflare會(huì)提示你「域名已激活」

第三步:創(chuàng)建反向代理Worker

  1. 在Cloudflare左側(cè)菜單,找到「Workers & Pages」,點(diǎn)擊「Create Worker」

  2. 選擇「Start with Hello World!」,給Worker起個(gè)名字(比如 neocities-proxy),點(diǎn)擊「Deploy」

  3. 進(jìn)入代碼編輯界面,把默認(rèn)的Hello World代碼全部刪掉,復(fù)制下面這段:

export default {
async fetch(request, env, ctx) {
// 目標(biāo)博客地址,改成你自己的
const targetHost = "ofirm.neocities.org";
const targetUrl = new URL(request.url);
targetUrl.host = targetHost;

// 轉(zhuǎn)發(fā)請(qǐng)求到目標(biāo)地址
const modifiedRequest = new Request(targetUrl, {
  method: request.method,
  headers: request.headers,
  body: request.body,
  redirect: "follow"
});

// 獲取目標(biāo)地址的響應(yīng)
const response = await fetch(modifiedRequest);
// 修改響應(yīng),刪除可能導(dǎo)致跳轉(zhuǎn)的頭信息
const modifiedResponse = new Response(response.body, response);
modifiedResponse.headers.delete("Location");
return modifiedResponse;

},
};

  1. 點(diǎn)擊右上角的「Save and Deploy」,保存代碼

第四步:把域名綁定到Worker

  1. 回到Cloudflare的域名管理頁(yè)面,點(diǎn)擊左側(cè)菜單的「Workers Routes」

  2. 點(diǎn)擊「Add route」,按下面的要求填寫:

    • Route: www.ofirm.org/*(把 ofirm.org 改成你自己的域名)

    • Worker: 選擇你剛才創(chuàng)建的 neocities-proxy

  3. 再添加一條根域名的路由:

    • Route: ofirm.org/*

    • Worker: 同樣選擇 neocities-proxy

第五步:測(cè)試效果

打開一個(gè)無(wú)痕瀏覽器窗口,輸入你的域名。 你會(huì)發(fā)現(xiàn),頁(yè)面正常加載了你的博客,而地址欄里,永遠(yuǎn)顯示著你的域名。


四、最后:你發(fā)現(xiàn)其實(shí)搞懂了互聯(lián)網(wǎng)的底層邏輯

折騰完這一圈,你會(huì)發(fā)現(xiàn),互聯(lián)網(wǎng)其實(shí)一點(diǎn)都不神秘。

  • 域名,就是互聯(lián)網(wǎng)上的「門牌號(hào)」

  • DNS解析,就是「查門牌號(hào)的電話本」

  • 反向代理,就是「幫你開門拿東西的管家」

我們平時(shí)上網(wǎng),看到的只是瀏覽器地址欄里的一串字符,但背后,是無(wú)數(shù)個(gè)服務(wù)器在互相轉(zhuǎn)發(fā)請(qǐng)求、傳遞數(shù)據(jù)。 而這樣的實(shí)戰(zhàn),會(huì)讓你親手摸到這個(gè)過程的每一個(gè)環(huán)節(jié)。

你看,一個(gè)看起來(lái)很瘋狂的想法,只要順著互聯(lián)網(wǎng)的規(guī)則一步步走,就能變成現(xiàn)實(shí)。 技術(shù)從來(lái)都不是少數(shù)人的專利,只要你愿意動(dòng)手試試,你也能玩出自己的花樣。

最后,放一張最終的效果圖:

域名完整顯示OFIRM.org.png

地址欄是我的域名 www.ofirm.org,內(nèi)容是Neocities上的博客,完美實(shí)現(xiàn)了最初的設(shè)想。 至于訪問計(jì)數(shù)一直是1這種小問題,根本不重要了。 畢竟,能把一個(gè)天馬行空的想法變成現(xiàn)實(shí),這種爽感,才是最珍貴的。


【深度認(rèn)知】:東西方干這種工作的公司的對(duì)比

兩個(gè)小時(shí)的折騰,讓我直接把一個(gè)千億級(jí)上市公司的核心商業(yè)模式給摸透了,比看十篇研報(bào)都管用。

用Cloudflare Worker做的事情,就是xx科技每天在做的事情的微型版


一句話說透xx科技是干啥的

我寫了10行JavaScript代碼,在Cloudflare的一個(gè)節(jié)點(diǎn)上,幫用戶把請(qǐng)求偷偷轉(zhuǎn)發(fā)到Neocities,再把內(nèi)容原封不動(dòng)送回來(lái),地址欄不變。

xx科技干的就是完全一樣的事:

  • 它在全球建了2800多個(gè)這樣的節(jié)點(diǎn)(中國(guó)就有2000多個(gè))

  • 它不是幫你一個(gè)人轉(zhuǎn)發(fā)博客,而是幫騰訊視頻、愛奇藝、抖音、淘寶、京東轉(zhuǎn)發(fā)所有用戶的請(qǐng)求

  • 你看視頻不卡、刷淘寶秒開、玩游戲不延遲,背后很大概率都是xx科技在幫你“就近拿內(nèi)容”

我搭的是1個(gè)節(jié)點(diǎn)、1個(gè)用戶、1個(gè)網(wǎng)站的反向代理; xx科技做的是2800個(gè)節(jié)點(diǎn)、10億用戶、百萬(wàn)個(gè)網(wǎng)站的反向代理。

本質(zhì)上,干的是完全一模一樣的活。


為什么xx科技能做成這么大的生意?

因?yàn)榛ヂ?lián)網(wǎng)的底層邏輯就是:所有內(nèi)容都需要有人幫忙“中轉(zhuǎn)”

如果沒有xx科技這樣的CDN公司:

  • 你看騰訊視頻,所有請(qǐng)求都要跑到深圳的騰訊總部服務(wù)器,全國(guó)幾億人同時(shí)看,服務(wù)器直接炸了

  • 你在新疆刷抖音,要從北京的字節(jié)服務(wù)器拉視頻,延遲能有1秒,根本沒法看

  • 你海淘亞馬遜,要從美國(guó)的服務(wù)器拉商品圖片,加載一頁(yè)要10秒

xx科技的作用,就是把這些視頻、圖片、文件,提前緩存到離你最近的城市的節(jié)點(diǎn)上。你看視頻的時(shí)候,不是從深圳拉,而是從你家樓下的xx節(jié)點(diǎn)拉,自然就不卡了。

這就是CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))的本質(zhì):把內(nèi)容搬到離用戶最近的地方。


xx科技 vs Cloudflare:兩個(gè)孿生兄弟,走了不同的路

同時(shí)用過Cloudflare和理解了xx科技,就能一眼看出它們的區(qū)別:

對(duì)比項(xiàng) xx科技 Cloudflare
核心市場(chǎng) 中國(guó)本土+東南亞出海(競(jìng)爭(zhēng)對(duì)手多,挺激烈的市場(chǎng)搏殺) 全球市場(chǎng)
最強(qiáng)項(xiàng) 視頻CDN、直播加速 網(wǎng)絡(luò)安全、邊緣計(jì)算
節(jié)點(diǎn)模式 重資產(chǎn)自建厚節(jié)點(diǎn),單個(gè)節(jié)點(diǎn)算力強(qiáng) 輕資產(chǎn)軟件定義瘦節(jié)點(diǎn),靠中央調(diào)度
客戶群體 騰訊、阿里、字節(jié)等大廠+政企 個(gè)人開發(fā)者+中小企業(yè)+全球客戶
免費(fèi)服務(wù) 幾乎沒有,全是企業(yè)級(jí)付費(fèi) 個(gè)人版完全免費(fèi),靠高級(jí)功能賺錢

簡(jiǎn)單說:

  • xx科技是中國(guó)互聯(lián)網(wǎng)的“水管工”,負(fù)責(zé)把國(guó)內(nèi)的流量跑通跑順

  • Cloudflare是全球互聯(lián)網(wǎng)的“保安兼搬運(yùn)工”,負(fù)責(zé)幫全世界的網(wǎng)站加速和防攻擊


最有意思的是:它們現(xiàn)在都在干同一件事

原來(lái)的CDN只是“搬內(nèi)容”,現(xiàn)在它們都在把自己的節(jié)點(diǎn)升級(jí)成“邊緣算力節(jié)點(diǎn)”。

我用的Cloudflare Worker,就是在Cloudflare的邊緣節(jié)點(diǎn)上跑代碼; xx科技現(xiàn)在也在把它的2800個(gè)CDN節(jié)點(diǎn),全部裝上GPU,變成邊緣AI推理節(jié)點(diǎn)。

以后你用ChatGPT,不用跑到美國(guó)的OpenAI服務(wù)器,直接從你家樓下的xx節(jié)點(diǎn)就能拿到回答,延遲能從幾百毫秒降到幾十毫秒。

這就是為什么現(xiàn)在資本市場(chǎng)突然又開始炒xx科技了(同樣的公司都炒,千萬(wàn)別無(wú)腦去追,節(jié)奏很重要)——原來(lái)大家以為它只是個(gè)“搬視頻的”,現(xiàn)在發(fā)現(xiàn)它手里握著全中國(guó)最密的邊緣算力網(wǎng)絡(luò),是AI時(shí)代的“賣水人”(我要是出手,他們跟英WD一樣,都得瞬間over,哈哈)。


最后再說這次實(shí)戰(zhàn)

你看,技術(shù)從來(lái)都不是什么高深莫測(cè)的東西。 一個(gè)千億級(jí)的上市公司,它的核心業(yè)務(wù)邏輯,我用10行代碼、一兩個(gè)小時(shí),就能親手摸索復(fù)刻出來(lái)。

我不是在“折騰一個(gè)博客”,我是在親手拆解互聯(lián)網(wǎng)的底層運(yùn)行機(jī)制。 當(dāng)別人還在說“CDN就是加速的”的時(shí)候,我已經(jīng)親手寫過一個(gè)反向代理,知道它每一步是怎么跑的,知道它為什么能加速,知道它的邊界在哪里。

這種“從0到1親手跑通”的認(rèn)知,是任何書本和教程都給不了你的。


本作品著作權(quán)歸作者本人所有。 ? 允許:非商業(yè)目的的全文完整復(fù)制、轉(zhuǎn)載、分享傳播 ? 禁止:任何形式的改編、刪減、篡改、拼接、截取片段使用、商用變現(xiàn)、二次授權(quán) ?? 轉(zhuǎn)載 / 復(fù)制時(shí)必須完整保留作者署名、本版權(quán)聲明及原文鏈接,違者將依法追究法律責(zé)任。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容