Discourse High Availability

Has anyone played with a HAProxy/nginx/etc?

I could have sworn there was a how-to guide for a way to do distributed hosting, either via Docker or via multiple instances of Discourse all hitting a single high availability database server, but I can’t seem to find a guide for it.

Any thoughts? I’m currently serving a small single Discourse site, but am interested in learning as much as I can about scaling and load balancing of Discourse.

Found it, less than fifteen minutes after I posted. I’ll put any info on snags or clarifications that might be helpful into the conversation here.

The documentation is very fragmented. I’m going to attempt to pull it all together here.

Any chance I could get some input from @nx2zdk or @jspdng?

Info on avoiding port exposure:

Load balancing with nginx:

Enabling http2 on Debian:

Offline page setup:

다른 곳에서 유사한 답변을 찾지 못했습니다.
표준 환경에서 Discourse의 독립 실행형(Standalone) 설치가 단순성과 견고함 때문에 권장된다는 점은 이해하고 있습니다. 그러나 고가용성(HA)을 제공하기 위해, 일부는 독립 실행형 모드를 여러 컨테이너로 확장하는 것을 제안하고(29413), 다른 일부는 완전히 분리된 배포 구조를 재설계하라고 조언합니다.

  1. 질문 1: HA는 신뢰할 수 있는 페일오버를 위해 서비스(웹 및 DB)를 중복하는 것이므로, Discourse에서는 웹 서비스와 DB 모두 컨테이너 내부에서 복제되는 이러한 솔루션을 제안합니까?
  2. 질문 2: 웹 서비스의 경우, 인스턴스 간 부하 균형을 보장하기 위해 로드 밸런서가 필요합니다. Discourse 전문가 및 커뮤니티의 권장 사항은 무엇입니까?
  3. 질문 3: 컨테이너화된 DB의 HA를 위해, PostgreSQL 복제를 관리하는 가장 선호되는 방식은 무엇입니까?
  4. 질문 4: Redis에 대해서도 동일한 질문을 드립니다.

포스트그레SQL 페일오버를 처리하는 방법은 여러 가지가 있습니다. 원하시는 방식을 자유롭게 사용하시면 됩니다.

CDCK 호스팅은 HA-proxy를 사용한다고 알고 있습니다. 원하시는 로드 밸런서를 자유롭게 사용하고, 대부분 /srv/status를 준비 상태 지표로 사용할 수 있습니다.