Несколько контейнеров приложений для одного сайта Discourse

Ещё одно замечание, которое напрямую связано с частью настройки HAProxy, описанной выше.

В связке HAProxy + Discourse часто встречается следующее поведение: при пересоздании веб-контейнера (например, командой ./launcher rebuild app1) на короткое время возвращаются ответы 503 Service Unavailable, поскольку HAProxy продолжает направлять трафик на этот бэкенд, пока он перезапускается. Это не ошибка самого Discourse — такое происходит из-за того, что бэкенд временно недоступен во время пересоздания.

Рекомендуемое решение — использовать сокет администратора HAProxy для:
1. отключения сервера в HAProxy перед пересозданием и
2. повторного включения его после завершения пересоздания.

Это предотвращает возникновение этих временных ошибок 503.

Существует обсуждение на Meta, документирующее это поведение и объясняющее описанное решение:

Если кто-то из вас использует HAProxy для последовательных пересозданий, в этой теме содержится полезный контекст, объясняющий, почему команды через сокет администратора включены в инструкцию по эксплуатации (runbook).