后端代理
Trunk 自带内置代理,可以在运行 trunk serve
时启用。 有两种配置代理的方式,每种方式将在下面讨论。 所有 Trunk 代理都将透明地将请求体、标头和查询参数传递给代理后端。
代理 CLI 标志
trunk serve
命令接受两个与代理相关的标志。
--proxy-backend
指定后端服务器的 URL,请求应代理到该服务器。 给定 URL 的 URI 段将用作 Trunk 服务器上处理代理请求的路径。 例如,trunk serve --proxy-backend=http://localhost:9000/api/
将把路径 /api/
上收到的任何请求代理到侦听 http://localhost:9000/api/
的服务器。 进一步的路径段或查询参数将无缝传递。
--proxy-rewrite
指定 Trunk 服务器要监听代理请求的备用 URI。 在给定 URI 上收到的任何请求都将被重写以匹配代理后端的 URI,从而有效地剥离重写前缀。 例如,trunk serve --proxy-backend=http://localhost:9000/ --proxy-rewrite=/api/
将把在 /api/
上收到的任何请求代理到 http://localhost:9000/
,并从请求中剥离 /api/
前缀,而 /api/
前缀之后的所有内容将保持不变。
--proxy-insecure
允许 --proxy-backend
url 对 https 使用自签名证书(或任何官方无效证书,包括过期证书)。 这将用于代理到 https,例如 trunk serve --proxy-backend=https://localhost:3001/ --proxy-insecure
,其中 ssl 证书是自签名的,例如使用 mkcert,并通过 https 反向代理(例如 local-ssl-proxy 或 caddy)路由到后端。
--proxy-no-sytem-proxy
绕过系统代理来连接代理后端。
--proxy-ws
指定代理用于 WebSocket 端点。
配置文件
Trunk.toml
配置文件接受多个 [[proxy]]
部分,这允许配置多个代理。 每个部分至少需要 backend
字段,并可选地接受 rewrite
和 ws
字段,这两个字段都对应于上面讨论的 --proxy-*
CLI 标志。
与其他 Trunk 配置一样,通过 CLI 声明的代理将具有最终优先级,并将导致任何配置文件代理被忽略,即使配置文件中声明了多个代理也是如此。
以下是 Trunk 仓库中 Trunk.toml
文件的一个片段
[[proxy]]
rewrite = "/api/v1/"
backend = "http://localhost:9000/"