Usa una sottocartella (prefisso percorso) per servire Discourse con più server che condividono un dominio

Supponiamo che tu abbia un blog WordPress su http://=DOMAIN= e desideri che i tuoi forum Discourse (che girano su un server diverso) vengano serviti da http://=DOMAIN==PATH=. Come si fa?


Nota: Questo non funzionerà per servire più istanze di Discourse da cartelle diverse sullo stesso dominio. È necessario utilizzare sottodomini diversi in modo che ogni sito possa avere cookie diversi.


Dovrai inviare tutto il traffico per il dominio a un unico punto che possa instradare il traffico al server corretto. In questa guida, utilizzerò Fastly. Quindi, Discourse verrà servito da un server e le altre parti del tuo sito (come WordPress) verranno eseguite su uno o più altri server.

Modifiche al container Docker

Per prima cosa, segui le istruzioni qui per servire Discourse da una sottocartella.

Fastly

Ora configura Fastly per inviare il traffico al posto giusto in base al percorso. Presumo che Discourse venga servito da =PATH=.

Crea un nuovo servizio che punti al tuo sito principale e segui le istruzioni per l’aggiornamento delle impostazioni DNS.

Vai al servizio e fai clic su “Configure”. Assicurati di aver selezionato la Versione 2 in modo da poter apportare modifiche. La Versione 1 è la versione attualmente attiva e non può essere modificata.

Nella sezione “Hosts”, aggiungi il tuo server Discourse come secondo backend.

Nella scheda Settings (Impostazioni), aggiungi una nuova voce sotto Request Settings (Impostazioni richiesta) denominata “Discourse Pass” con azione “Pass”.

Infine, per ogni host modifica le condizioni per specificare dove instradare il traffico.

Per il tuo sito principale, le URL non-Discourse dovrebbero corrispondere.

req.url !~ "^=PATH="

Per l’host Discourse, le URL =PATH= dovrebbero corrispondere.

req.url ~ "^=PATH="

15 Mi Piace