Discussione con Discourse con reverse proxy manager

Ciao, sto cercando di configurare Discourse con Reverse Proxy Manager su Nginx su una macchina. Tutto è accessibile tramite il mio DNS utilizzando le porte predefinite sulla macchina, ma quando lo configuro con un reverse proxy per instradare il traffico attraverso il mio sottodominio con SSL forzato, semplicemente non funziona. Ottengo un 502. Sto eseguendo più container. Proxy Manager è isolato e tutto Discourse in un altro. Ho esaminato praticamente tutte le guide che riesco a trovare e niente funziona. Ci deve essere un modo per farlo con successo nel 2025! Ho un sito in esecuzione con Proxy Manager e tutto funziona correttamente. Devo passare la rete FPM ai container Discourse poiché quella è la rete predefinita che Proxy Manager utilizza per rendere i container Discourse accessibili a Proxy Manager? Se sì, dove devo andare per inserirlo poiché non riesco a trovare alcuna informazione. La gente dice di inserirlo nelle loro configurazioni ma non sa esattamente dove. ? Non voglio dover cambiare le configurazioni. Ho visto alcune guide che dicono di non esporre le porte e lasciare che Proxy Manager faccia il resto, fatto. Ho visto guide che dicono di provare a utilizzare i template web.socketed.yml nella directory discourse/templates ma anche quello non funziona. Ho visto persone che ci sono riuscite sia esponendo che non esponendo le porte su Discourse. Niente sembra essere coerente qui. Cosa funziona e cosa funziona bene oggigiorno. Ricorda, sto eseguendo tutto da una sola macchina.

1 Mi Piace

La mia ipotesi è che il proxy manager funzioni perfettamente e che l’errore 502 provenga da discourse perché non è configurato correttamente.

Hai commentato i template let’s encrypt e ssl nel tuo file yml?

2 Mi Piace

Buone notizie: nulla sembra ancora “rotto”. Quel 502 è stato quasi certamente una gara al primo avvio: Nginx ha provato il tuo /srv/status prima che Unicorn fosse pronto. I tuoi log mostrano:

  • unicorn: run :white_check_mark:
  • Rails avviato :white_check_mark:
  • Errore Nginx alle 17:34:11 “connection refused” (probabilmente prima che Unicorn finisse)

Risolviamo rapidamente.

1) Riprova lo stato (host → app2)

curl -sSI http://127.0.0.1:8002/srv/status
  1. Se mostra ancora 502, riavvia semplicemente Nginx in app2 e testa dall’interno del container:
docker exec -it app2 bash -lc 'sv restart nginx & && sleep 2 && curl -sSI http://127.0.0.1/srv/status'
curl -sSI http://127.0.0.1:8002/srv/status

Dovresti vedere HTTP/1.1 200 OK.


Ci sono riuscito. Dato che sto eseguendo in 2 container Docker, ho dovuto consentire l’accesso per farli comunicare attraverso una rete. Nessuna porta è esposta tramite discourse poiché è in esecuzione su porte Docker interne. Inoltre, è più sicuro.

Jonnyboy! Gli iPhone sono fantastici!

1 Mi Piace

Quindi è quello che ti ha detto qualche IA. Ha funzionato?

1 Mi Piace

sì ha funzionato, e poi ho annunciato il risultato nel seguente topic;