一个服务器支持两个 Discourse 社区?

关于上述 HAProxy 设置的另一个补充说明。

HAProxy + Discourse 存在一个常见行为,即重建 Web 容器(例如使用 ./launcher rebuild app1)时,会短暂返回 503 Service Unavailable 响应,因为 HAProxy 在后端重启期间仍在向其发送流量。这本身并不是 Discourse 中的错误——它发生是因为后端在重建过程中暂时不可用。

推荐的解决方法是使用 HAProxy 管理套接字来:

  1. 在重建之前禁用 HAProxy 中的服务器,以及
  2. 在重建完成后重新启用它

这可以防止瞬态 503 错误。

有一个现有的 Meta 讨论记录了这种行为以及对解决方法​​的解释:

如果这里有人对滚动重建使用 HAProxy,那么该帖子为 runbook 中包含管理套接字命令提供了有用的背景信息。