需求是:在Caddy服务器下,指定某些类型的文件(例如图片、视频)请求,转发到指定服务器。指定服务器还可以通过Caddy实现均衡负载。
这样的目的是将主服务和高带宽服务分开。
寻找解决中,希望已有解决方法,不用自己动代码。
通过搜索可知:
可以通过指定路径进行负载均衡来间接实现:
reverse_proxy /api/* node1:80 node2:80 node3:80 {
lb_policy header X-My-Header
}
以上代码只均衡/api地址下的请求。
同时,可能存在一个需求:路径需要修改
// 在代理前去除一个路径前缀:
handle_path /prefix/* {
reverse_proxy localhost:9000
}
// 在代理之前替换一个路径前缀:
handle_path /old-prefix/* {
rewrite * /new-prefix{path}
reverse_proxy localhost:9000
}