Caddy反向代理(reverse_proxy)-请求头配置

什么时候需要修改请求头

1. 要覆盖原始Host

reverse_proxy 127.0.0.1:8080 {
    header_up Host "backend‑internal.local"
}

2. 需要删除某个转发头(极少用)

reverse_proxy 127.0.0.1:8080 {
    header_up -X‑Forwarded‑Host
}

请求头配置

  • header_up:发给后端(upstream)的请求头

  • header_down:Caddy返回给客户端的响应头

语法

  • header_up 头名 值:设置
  • header_up -头名:删除该头
  • header_up +头名 值:追加(不覆盖)

例子1

reverse_proxy 127.0.0.1:8080 {
    # 告诉后端是通过 HTTPS 过来的
    header_up X-Forwarded-Proto https
}

作用: 告诉后端是通过 HTTPS 过来的,后端生成跳转、拼接页面完整 url 时,会拼出 https:// 这是正常的,否则会拼出 http:// ,导致不一致,可能会产生问题

例子2

reverse_proxy 127.0.0.1:8080 {
    # 删除原始某个头
    header_up -X‑Powered‑By

    # 修改返回客户端的响应头
    header_down Server "my‑gateway"
}

原文出处:/show_1GW3pyQhJG3L.html