Alta Disponibilità di Discourse

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.

5 Mi Piace

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:

Non ho trovato risposte esaurienti altrove.
Ho capito che l’installazione Standalone di Discourse è raccomandata per la sua semplicità e robustezza in ambienti standard. Tuttavia, per fornire Alta Disponibilità (HA), alcuni suggeriscono di espandere la modalità standalone in più container (29413), altri ridisegnano distribuzioni completamente separate.

  1. Domanda 1: Poiché l’HA riguarda la duplicazione dei servizi (web e db) con un failover affidabile, Discourse propone una soluzione in cui sia i servizi web che i DB sono replicati all’interno dei container?
  2. Domanda 2: Per i servizi web, sarebbe necessario un load balancer per garantire l’equità di carico tra le istanze. Quali sono le raccomandazioni degli esperti e della community di Discourse?
  3. Domanda 3: Per l’HA dei DB containerizzati, qual è il modo più preferibile per gestire la replica di PostgreSQL?
  4. Domanda 4: Stessa domanda per Redis.

Ci sono diversi modi per gestire il failover di postgres. Puoi usare quello che preferisci.

L’hosting di CDCK utilizza HA-proxy, per quanto ne so. Puoi usare qualsiasi load balancer tu voglia e (per lo più) usare /srv/status come indicatore di prontezza.

1 Mi Piace