上期文章
一個非常輕量的靜態資源服務器 (一)
時隔一年多,最近工作,遇到了新的想法,部署靜態資源的時候,不可避免需要請求後端,為了方便,新增了一個API代理轉發功能。
緊接着一年前的運行示例,下面的API代理轉發的參數,只有1個參數,proxy。配置路徑和轉發地址後,在靜態頁面裏請求相關路徑,就會全部轉發至配置的地址上,並且支持websocket。
- API代理
有時候,後端可能部署在其他域名下,直接訪問存在跨域,跨域通過API代理,來規避跨域
docker run -ti --rm --init \
-p 80:80 \
ikrong/mini-http \
/serve \
--domain localhost \
--proxy /api:https://example.com/api
proxy 參數跨域配置請求路徑 /api 下的所有路徑全部重定向到 https://example.com/api 路徑下
另外在使用的過程中,當設置了其他端口,比如 8944,並且配置為https訪問,理論上需要將地址寫為 https://localhost:8944 但是,經常被錯誤寫為 http://localhost:8944。這個時候,響應就會出現一個頁面錯誤:Client sent an HTTP request to an HTTPS server.
這個錯誤很不友好,我覺得既然服務知道自己的https,就應該重定向至https協議,允許用户犯錯,所以,又增加了一個以http協議訪問https端口時,自動重定向的功能。這個不需要參數,強制重定向的。
具體代碼實現有點長,具體可以看Github代碼倉庫。
需要注意,這個功能和80端口重定向至443端口是不一樣的,目前不支持80重定向443。
最後,再回顧一下目前這個靜態服務器支持的所有功能
- 支持靜態資源訪問
- 單頁面路由
- 支持端口自定義
- 支持https配置
- 支持多域名配置
- 支持自定義404頁面
- 支持gzip
- 支持api代理
如果,你也有想法,可以告訴我,我來加!