asjdf

一只在杭电摸鱼的小火鸡

使用Caddy配置同一域名下的前后分离
Aug 15, 2022
One minute read

倒腾了小半个下午,平时配的都是不同域名下的前后分离,头一回使用 Caddy 配置同一个域名下的前后分离。

不同域名下的前后分离(这个不在本文详解,很好配置),例:

  • api.foo.com (后端)
  • foo.com (前端)

统一域名下的前后分离,例:

  • foo.com/api/* (后端)
  • foo.com/* (前端)

因为 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个小时休息,下班!


Back to posts