簡單三步發佈本地服務或網站

1. 背景

在日常開發中經常需要演示和調試未上線的網站或者API,diode 應運而生,簡單的快速的可以發佈本地的網站或者API服務到外網,然後通過diode.link的二級域名訪問你發佈的東西,十分方便。本文介紹如何簡單快速的通過diode發佈本地的API服務。

2. 三步發佈本地API服務

2.1 啓動一個本地服務

我本地有一個開發的中的項目, 這個項目有一個健康檢查的API: GET /health, 該項目是基於nodejs框架express的,這裏不詳細介紹了總之它是一個提供RESTful API的服務,使用如下命令啓動:

npm run start

我的服務啓動後監聽本地3000端口。

2.2 安裝diode

curl -Ssf https://diode.io/install.sh | sh

2.3 發佈本地服務

diode publish -public 80:3000 

上面這個命令的意思是: 本地3000端口的服務被髮布到diode的80端口上,且這個發佈是公開的(當然也可以更多安全發佈策略)。

首次發佈比較慢,diode會初始化一個client的ID, 這個ID作爲diode.link的自域名可以在外網被訪問。上面命令的控制檯輸出大致如下:

[INFO] Diode Client version : v0.6.1 02 Nov 2020                         
[INFO] Client address       : 0xaf9e2d540232d394997480889042a2e9a3d11beb 
[INFO] Fleet address        : 0x6000000000000000000000000000000000000000 
[INFO] Connected to host: as1.prenet.diode.io:41046, validating... 
[INFO] Network is validated, last valid block: 1001299 0x000024f36df70e4b0694bd7f604ed326dddd72cc25cbe8068af9934f348e11d6 
[INFO]  
[INFO] Port      <name>     : <extern>     <mode>    <protocol>     <allowlist> 
[INFO] Port         80      :     3000      public       any             
[INFO] Port was not published port = 80         server=as1.prenet.diode.io:41046       server=as1.prenet.diode.io:41046
[INFO] Port was not published port = 80         server=as1.prenet.diode.io:41046
^C[INFO] 1/5 Stopping socksserver 
[INFO] 2/5 Stopping proxyserver 
[INFO] 3/5 Stopping configserver 
[INFO] 4/5 Cleaning pool 
[INFO] 5/5 Closing logs 
➜  ~ diode publish -public 3000:80  
[INFO] Diode Client version : v0.6.1 02 Nov 2020                         
[INFO] Client address       : 0xaf9e2d540232d394997480889042a2e9a3d11beb 
[INFO] Fleet address        : 0x6000000000000000000000000000000000000000 
[INFO] Connected to host: as1.prenet.diode.io:41046, validating... 
[INFO] Network is validated, last valid block: 1001331 0x0000793c211a3a7707fcf13b5275a84a961c7f19857ce03c9c0e8d3026bc0b16 
[INFO]  
[INFO] HTTP Gateway Enabled : http://0xaf9e2d540232d394997480889042a2e9a3d11beb.diode.link/ 
[INFO] Port      <name>     : <extern>     <mode>    <protocol>     <allowlist> 
[INFO] Port       3000      :       80      public       any             

3. 驗證

通過上面的三步,可以從最後一步最後看到本地程序已經被髮布了,從控制檯可以看到一個Client address, 現在你可以在外網使用: http://<client address>.diode.link 如同使用本地的服務 http://localhost:3000 , 使用curl測試一下health接口:

curl -s -XGET https://0xaf9e2d540232d394997480889042a2e9a3d11beb.diode.link/health

測試結果符合預期, 測試成功!

4. 總結

Diode是我看到第一個免費的且超級方便的本地服務發佈工具,在安全性它還有一些高級的設置可以繼續學習和研究, 比如只允許特定的地址訪問被髮布的外網服務;diode也可以發佈本地靜態文件所以網站也是可以,這對前端的同學也很有幫助。

今天介紹的Diode希望可以幫助開發的朋友。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章