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