利用cloudflare-works邊緣計算搭建線上網頁代理
阿新 • • 發佈:2020-12-01
今天看到阮一峰老師的Twitter發的“關於Cloudflare 正式釋出 workers 功能”,搜尋了一下關於 workers 功能使用教程,找了一篇文章(Xiaomage’s Blog利用cloudflare works邊緣計算搭建線上網頁代理)還不錯,先碼後續繼續研究。
工具
- 開源專案jsproxy
- 一個cloudflare賬號
- 一個Github賬號,或者一臺伺服器+域名
一點說明:
要利用cloudflare works邊緣計算搭建線上網頁代理,需要用到大神EtherDream的開源專案jsproxy
這個專案使用了Service Worker,它能讓 JS 攔截網頁產生的請求,並能自定義返回內容,相當於在瀏覽器內部實現一個反向代理。這使得絕大部分的內容處理都可以在瀏覽器上完成,伺服器只需純粹的轉發流量。
你可以使用Github pages服務,快速搭建起頁面前端,從而做到真正的serverless。當然,如果你有一臺伺服器+域名,你也可以把伺服器放在自己的伺服器上。這一步只是給cloudflare一個回源伺服器,使用者訪問的一切流量都要經過cloudflaer伺服器,而不是Github或者你的伺服器。所以伺服器位置並不會影響網頁代理的速度,而是使用者到所連線到的cloudflare伺服器的速度。建議使用Github pages的服務即可,下面的教程也將演示利用Github pages搭建此代理的過程。
操作步驟
GitHub方面
- 登入你的Github賬號,forkjsproxy專案到你的倉庫中
- 進入你fork的jsproxy專案的
setting
中,啟用下方的Github pages,其中專案分支選擇gh-pages branch
分支即可,配置見下圖: - 進入你fork的jsproxy專案的
source(原始碼)
中,切換到gh-pages branch
分支,新建一個index.html
,內容為空即可。 - 訪問你Github pages服務生成的網址,如果為白屏,沒有報404錯誤的話,回到剛才的原始碼,將
index.html
刪除即可。3、4兩部可以在Github裡直接操作,也可以用git命令拉取到本地進行修改,這裡不再贅述。 - 如果你想自定義頁面的樣式,可以修改
gh-pages branch
分支中的index_v3.html
Cloudflare方面
- 在https://dash.cloudflare.com/登入你的cloudflare賬號,點選右側大大的
workers
進入workers控制面板。 - 第一次使用workers功能,需要完成一個新手引導教程。第一步,需要選擇一個cloudflare提供的
*.workers.dev
的二級域名,根據自己的喜好填寫,按照提示next就可以了。 - 新手教程第二步會讓你選擇plan,我們白嫖黨當然要選擇Free Plan啦,每天有100000個請求配額,個人使用綽綽有餘。
- 下一步可能要驗證郵箱,到註冊cloudflare的郵箱裡點選連結啟用一下就可以。
- 完成新手引導後,回到workers面板,點選藍色的
Create a Worker
按鈕,新建一個worker。 - 這時會開啟一個帶有程式碼編輯器的新標籤頁,在左側選擇Script標籤,貼上以下內容:注意在第六行裡填寫好你Github pages的網址,即
https://xxx.github.io/jsproxy
1 |