2

我正在尝试做一些对我来说似乎相当微不足道的事情,但似乎无法用 Caddy 做正确的事情。

我使用 Caddy 配置了以下站点:

foo.com {
  tls {
    dns cloudflare ...
  }
  reverse_proxy /* http://proxy-foo
}

我现在正在尝试启用维护页面,以便所有请求都服务于维护 html,并返回 503 状态代码。但是,我可以提供页面或状态码,但不能同时提供。

我首先尝试了该handle_errors指令,带有一个响应指令

foo.com {
  tls {
    dns cloudflare ...
  }
  # reverse_proxy /* http://proxy-foo
  handle_errors {
    rewrite * /503.html
    file_server
  }
  respond * 503
}

只是为了稍后阅读响应不会触发错误处理程序的警告。

还尝试删除所有其他指令,认为这会触发 404,这又会调用 handle_errors 块,但这也不起作用。它最终只返回 200,但没有正文。

任何关于我哪里出错的指示都非常感谢。

4

1 回答 1

1

您可以尝试配置reverse_proxy指令。

类似于文档示例的代码对我有用:

:80

reverse_proxy localhost:8000 {
    @error status 500 503
    handle_response @error {
        respond "Something bad happened. If the error occurs again, please contact me at example@mail.com"
        # i guess we can use other directives like redirect 
    }
}
于 2021-11-03T14:24:08.240 回答