學(xué)會(huì)了嗎(反向代理https)反向代理服務(wù)器,使用cloudflare worker反向代理codeforces,支持登錄和提交代碼評(píng)測(cè),人體生物節(jié)律查詢(xún),
目錄:
1.反向代理教程
2.反向代理有啥用
3.反向代理是什么怎么用
4.反向代理怎么做
5.反向代理是啥意思
6.反向代理的原理
7.反向代理 ngix
8.反向代理安全嗎
9.反向代理是啥
10.反向代理是什么意思
1.反向代理教程
作為一個(gè)退役的ACM選 (蒟)手(蒻),偶爾也會(huì)回codeforces上做做題娛樂(lè)娛樂(lè)但是codeforces作為一個(gè)外國(guó)網(wǎng)站,在國(guó)內(nèi)訪問(wèn)的話速度十分感人,你懂的雖然絕大多數(shù) 業(yè)內(nèi)人士 都有不可描述的方法讓自己訪問(wèn)到國(guó)外的網(wǎng)站,但是還是有一些剛接觸比賽的同學(xué)需要一個(gè)比較快的訪問(wèn)途徑。
2.反向代理有啥用
當(dāng)然國(guó)內(nèi)之前也有一些dalao自制的codeforces鏡像,例如 https:/來(lái)北京必買(mǎi)的10件東西/codeforc.es/ 等我這里提供一種免費(fèi)自行搭建codeforces反向代理的方法,借用了cloudflare免費(fèi)提供的serveless服務(wù):workers。
3.反向代理是什么怎么用
關(guān)于workers的簡(jiǎn)單介紹可以參見(jiàn)官方的blog: Cloudflare Workers的名稱(chēng)來(lái)自Web Workers,更具體地說(shuō)是Service Workers,一個(gè)用于在web瀏覽器后臺(tái)運(yùn)行并攔截HTTP請(qǐng)求的腳本的W3C標(biāo)準(zhǔn)API。
4.反向代理怎么做
Cloudflare Workers是針對(duì)相同的標(biāo)準(zhǔn)API編寫(xiě)的,但是是在Cloudflare的服務(wù)器上運(yùn)行,而不是在瀏覽器中運(yùn)行 以下是您可以使用來(lái)北京必買(mǎi)的10件東西的工具: - 使用最新的標(biāo)準(zhǔn)語(yǔ)言功能執(zhí)行任意JavaScript代碼。
5.反向代理是啥意思
- 攔截和修改HTTP請(qǐng)求和響應(yīng)URL,狀態(tài),標(biāo)頭和正文內(nèi)容 - 直接從您的Worker響應(yīng)請(qǐng)求,或?qū)⑵滢D(zhuǎn)發(fā)到其他地方 - 將HTTP請(qǐng)求發(fā)送到第三方服務(wù)器 - 以串行或并行方式發(fā)送多個(gè)請(qǐng)求,并使用響應(yīng)組成對(duì)原始請(qǐng)求的最終響應(yīng)。
6.反向代理的原理
- 在響應(yīng)已經(jīng)返回到客戶(hù)端之后發(fā)送異步請(qǐng)求(例如,用于記錄或分析) - 控制其他Cloudflare功能,例如緩存行為 反向代理的話相當(dāng)于是我們的節(jié)點(diǎn)代替codeforces接受了客戶(hù)端的請(qǐng)求,所以其實(shí)我們只需要做兩件事:。
7.反向代理 ngix
接收客戶(hù)端的請(qǐng)求,來(lái)北京必買(mǎi)的10件東西對(duì)其進(jìn)行必要的修改之后發(fā)送給真正的服務(wù)端(http://codeforces.com)這些修改主要是針對(duì)一些headers的設(shè)置,包括替換Host地址,允許任意源頭資源共享(access-control-allow-origin: *)等,具體見(jiàn)代碼。
8.反向代理安全嗎
接收服務(wù)端的響應(yīng),同樣地我們需要對(duì)響應(yīng)的內(nèi)容做一些修改再發(fā)送給客戶(hù)端的瀏覽器這部分主要是把響應(yīng)中所有的http://codeforces.com出現(xiàn)的部分改換成workers站點(diǎn)的url,否則我們的客戶(hù)端就獲取這些信息之后下一次就會(huì)直接訪問(wèn)codeforces源站了。
9.反向代理是啥
這一步可以通過(guò)簡(jiǎn)單的文本查找和替換來(lái)實(shí)現(xiàn),我們來(lái)北京必買(mǎi)的10件東西可以維護(hù)一個(gè)替換對(duì)字典,對(duì)響應(yīng)的內(nèi)容進(jìn)行正則查找替換后把響應(yīng)發(fā)送給客戶(hù)端之前我部署過(guò)一個(gè)基于workers的js腳本,今天看了下原作者的repo半年來(lái)已經(jīng)更新了很多內(nèi)容,甚至名字都換了,也完善了很多東西。
10.反向代理是什么意思
但我并沒(méi)有用他的最新的版本,而是簡(jiǎn)單地修改了一下他原來(lái)的腳本直接拿來(lái)用了原先的腳本里有個(gè)問(wèn)題是只支持GET方法,POST的時(shí)候沒(méi)有因?yàn)榘褦?shù)據(jù)附上就會(huì)出錯(cuò)具體的代碼放在了GitHub上:https://github.com/itewqq/codeforces-reverse-proxy
?github.com/itewqq/codeforces-reverse-proxy需來(lái)北京必買(mǎi)的10件東西要注意的是codeforces使用了cfassets和stacf這兩個(gè)cdn服務(wù)器的子域名,所以還要再開(kāi)兩個(gè)worker部署這兩個(gè)服務(wù),并且在主站的替換字典中加入兩個(gè)cdn網(wǎng)址的替換映射。
constreplace_dict={$upstream:$custom_domain,sta.cf..workers.dev:stacf..workers.dev
,assets.cf..workers.dev:cfassets..workers.dev}以上就是這個(gè)簡(jiǎn)單的白嫖代理的應(yīng)用了 PS: 比較扯淡的是我后來(lái)發(fā)現(xiàn)在我的網(wǎng)絡(luò)環(huán)境下,連接cloudflare的節(jié)點(diǎn)的速度甚至比直接訪問(wèn)codeforces還來(lái)北京必買(mǎi)的10件東西慢 ( ̄_ ̄|||) 所以這個(gè)東西就成為一個(gè)純自?shī)首詷?lè)的操作了 ┑( ̄Д  ̄)┍。
害,開(kāi)心就好