已发布版本:https://github.com/InvertGeek/mixlink/releases
- 用户访问站点时,默认会转发原站返回的内容,相当于一个轻量级反向代理。
- 当访问的 URL 命中特定后缀规则时,会将原站资源上传到加速服务。
- 下次请求相同资源时,直接重定向到加速地址,不再消耗服务器带宽。
- 需要先部署上传服务,推荐使用 directlink。
- 上传服务接口填写为:
directlink 服务地址 + /api/upload。 - 启动服务后,编辑
config.yaml文件,根据需求自行配置即可。
本应用是基于反向代理实现的,并不是部署完成后在配置文件里写上网站域名,
原域名就能自动被“加速”。
这种操作神仙都做不到。
假设你的网站当前运行在 80 端口(对外访问):
- 将原站服务修改到其他端口,例如 81。
- 在 mixlink 中,将原站地址设置为
81端口。 - 推荐使用 nginx 再次反代 mixlink,用于配置 HTTPS 证书和自定义请求头。
- mixlink 监听 82 端口,nginx 监听 80 端口 并反代到
82。
访问流程:
用户 → nginx → mixlink → 原站
说明:
- 如果原站本身就是 nginx,也可以反代自己,这是完全可行的。
- 简单来说,把本应用当作 CDN 使用即可:
- 原站是隐藏的
- 用户只能通过 CDN(mixlink)访问网站
- 自定义 host 规则:当请求的 Host 请求头 匹配某字符串时,回源到对应站点。
_default表示默认站点。- 不清楚什么是 Host 请求头的,可以直接问 AI。
不是随便写一个名字就行。
例如默认的 www_example_com,表示当访问域名为 www.example.com 时,回源到对应原站。
- 支持通过响应头自定义缓存过期时间。
- 原站响应中携带
x-mixlink-expire响应头即可。 - 单位为 毫秒:
- 过期后会删除缓存并重新上传
- 默认情况下 永不过期
- 每次重定向前都会检测加速链接是否可访问。
- 若检测失败,会自动 fallback 到转发模式,无需担心访问中断。
- 同一 URL 多次检测失效后,会自动删除缓存并重新上传资源。
- CSS 中存在相对路径引用时,可能导致路径错误。
- 使用 ESM 语法 的 JS 相对路径引用同样会出问题。
- 可使用 webpack 等构建工具将 ESM 编译为 CommonJS 规避。
- 原因在于:相对路径是基于文件自身路径解析,而不是 HTML 页面路径。