Caddy反向代理转发修改http请求路径

Caddy是个非常不错的开源服务器产品,简单易用,自带ssl。只是没啥详细的中文文档,遇到问题只能看官方文档。

记录一下使用Caddy转发http请求的方法。

问题:将http://192.168.1.10:7077/product/*的请求转发到http://192.168.1.12:7078/*。这里其实是两个需求,一个是转发端口,还有个是去除掉product前缀。感兴趣的可以自己研究一下。

Caddyfile如下:

http://192.168.1.10:7077 {
    log {
        output stdout
    }
    
    handle_path /product* {
        reverse_proxy http://192.168.1.12:7078
    }
}

强调几点:

1. 如果开头不指定http,Caddy默认使用https协议

2. log指令开启日志,output stdout指定将日志输出到标准输出

3. /product*表示匹配所有以/product为前缀的url,包括/product和/product/*。Caddy的[matcher]匹配更偏向正则匹配,跟nginx的语法有差异

4. Caddyfile配置,同一大括号里面的多个directive(指令)并没有顺序之别,可以理解为:是给同一个匹配目标添加了多个特征

5. handle和handle_path的区别是handle_path自动在子指令中增加了一条uri strip_prefix /prefix指令,用于去除前缀

你可能感兴趣的:(linux,nginx,1024程序员节)