头图

上期文章
一个非常轻量的静态资源服务器 (一)


时隔一年多,最近工作,遇到了新的想法,部署静态资源的时候,不可避免需要请求后端,为了方便,新增了一个API代理转发功能。

紧接着一年前的运行示例,下面的API代理转发的参数,只有1个参数,proxy。配置路径和转发地址后,在静态页面里请求相关路径,就会全部转发至配置的地址上,并且支持websocket。

  1. 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代理

如果,你也有想法,可以告诉我,我来加!


ikrong
1 声望0 粉丝