倒腾了小半个下午,平时配的都是不同域名下的前后分离,头一回使用 Caddy 配置同一个域名下的前后分离。
不同域名下的前后分离(这个不在本文详解,很好配置),例:
统一域名下的前后分离,例:
因为 reverse_proxy 和 file_server 的优先级问题,如果直接设定 /api*
的反代和静态文件目录以及重写会导致错误。
配置使用 route
来匹配路径来解决问题我认为是一个比较优的解。
在我的案例中,前端是直接丢磁盘上的,后端需要 Caddy 进行反代:
foo.local {
route /api/* {
reverse_proxy localhost:10150
}
route /* {
root * /bar
try_files {path} /index.html
file_server
}
}
8小时劳动,8小时休闲,8个小时休息,下班!