Caddy配置文件样板如下:
https://$url$:88 {
tls {
resolvers 1.0.0.1
dns namecheap {
api_key $apikey$
user $username$
api_endpoint https://api.namecheap.com/xml.response
client_ip $namecheap_whiteip$
}
}
# 先处理 /seafhttp 请求(保留路径前缀)
handle_path /seafhttp* {
uri strip_prefix /seafhttp
reverse_proxy $ip$:8082 {
header_up Host {host}
flush_interval -1
transport http {
versions h1.1
read_buffer 0
read_timeout 36000s
write_timeout 36000s
dial_timeout 36000s
}
}
}
# 其它请求走 8000
reverse_proxy $ip$:8000 {
header_up Host {host}
}
}
如果外网80和443端口可访问,caddy就无需tls配置;如果80和443不可访问,需要通过增加dns api的tls配置块来解决自动申请ssl证书的问题。
本文用的是namecheap的域名,且80和443端口不可访问,因此使用的namecheap的tls配置。如果默认的caddy不支持dns api,可使用xcaddy进行自定义。
备注:caddy的namecheap模块,目前最高支持的caddy版本是v2.9.1。