In precedenza gestivamo una configurazione multisito di Discourse con circa 22 forum diversi. Recentemente, abbiamo deciso di rimuovere la configurazione multisito mantenendo solo il sito predefinito:
Sito predefinito ora:forum.mamapedia.com Dominio multisito precedente rimosso:forum.employ.com (e altri 21)
Il Problema:
Anche dopo aver disabilitato la configurazione multisito, i vecchi domini multisito possono ancora servire il forum predefinito (forum.mamapedia.com). Ad esempio:
Visitare forum.mamapedia.com funziona come previsto
Ma visitare forum.employ.com carica ancora il forum di Mamapedia
Ci aspettavamo che vecchi domini come forum.employ.com facessero una delle seguenti cose:
Mostrassero un errore (poichĂŠ non sono piĂš configurati)
Reindirizzassero correttamente o fossero completamente inattivi
Note sulla Configurazione:
Utilizziamo certificati SSL di Cloudflare con lâopzione proxy abilitata (il traffico non va direttamente al nostro server).
Possiamo rimuovere i record A per i vecchi domini, ma vogliamo davvero identificare e correggere la causa principale invece di fare affidamento su una soluzione alternativa basata sul DNS.
Passaggi Eseguiti Finora:
Rimossi i settaggi multisito da discourse.conf e dal database
Riavviato Discourse e verificato le impostazioni di app.yml
Cancellata la cache e testato in modalitĂ incognito
Comportamento Atteso:
forum.mamapedia.com dovrebbe continuare a funzionare
forum.employ.com e gli altri vecchi domini non dovrebbero servire il forum di Mamapedia
Domande:
Come possiamo rimuovere correttamente i vecchi domini in modo che non servano il forum predefinito?
Dobbiamo modificare le impostazioni di Nginx/Traefik, le impostazioni di Cloudflare, o câè una configurazione specifica di Discourse che ci è sfuggita?
Ă necessario passare a unâinstallazione standard. Le cose che hai fatto per renderlo multisite servono a far sĂŹ che il server possa gestire diversi domini.
Se crei un nuovo server e ripristini il backup, non puoi far deteriorare nulla, perchĂŠ puoi semplicemente tornare al vecchio.
Lâunica zoppia è che devi puntare il DNS al nuovo server mentre ricostruisci, cosĂŹ può ottenere un certificato. E rendi i DNS di Cloudflare solo DNS.
Il motivo per cui ciò accade è semplice. Multisite selezionerĂ un forum in base al nome host. Unâinstallazione non multisite accetterĂ felicemente qualsiasi nome host a cui la punti. Quindi, finchĂŠ avrai tutti i vecchi nomi host indirizzati a quellâinstallazione, servirĂ il sito rimanente su tutti quei nomi host.
Avere i vecchi record puntati al tuo sito è la causa principale.
Pulire la tua vecchia configurazione non è una soluzione alternativa, è la soluzione.
OMG. Non ricordo lâultima volta che ho avuto un disaccordo con te su un fatto. Di regola, quando vedo il tuo avatar in un argomento su cui ho commentato, so che imparerò qualcosa!
Ă vero. Affermano, però, di essere passati a unâinstallazione standard. Non gli credo.
Da diversi anni ormai (ma penso da quando Letâs Encrypt è disponibile), su unâinstallazione standard, se vi si accede tramite qualsiasi altro nome host, verrĂ eseguito un reindirizzamento (puoi verificarlo facilmente usando il numero IP e ho appena fatto un altro test impostando forum.bigmouth.bass in /etc/hosts su unâinstallazione standard e ha reindirizzato come previsto. Se vi si accede tramite https, cosa che la maggior parte dei browser fa per impostazione predefinita ora, si otterrĂ un errore di certificato.
Se tutto ciò che era necessario per accedere al tuo sito tramite un altro nome host era il DNS, allora chiunque potrebbe dirottare il tuo sito creando un record DNS che punta al tuo sito.
Penso che questa sia la magia:
La mia ipotesi è che app.yml abbia ancora qualcosa di simile:
Abbiamo controllato app.yml e non ci sono configurazioni personalizzate di reindirizzamento o override. Tuttavia, la nostra istanza ancora non reindirizza gli host sconosciuti al dominio principale.
Configurazione Nginx: Câè un modo per verificare se la logica di reindirizzamento dai template/web.ssl.template.yml viene effettivamente applicata? Dovremmo controllare manualmente la configurazione generata di Nginx allâinterno del container?
Debugging di Discourse: Ci sono log o comandi che possiamo eseguire allâinterno del container per confermare che Discourse gestisce correttamente gli hostname?
Altri possibili motivi: Se app.yml è pulito, cosâaltro potrebbe impedire il comportamento di reindirizzamento atteso? Cloudflare o altre impostazioni potrebbero interferire?
Apprezzerei qualsiasi suggerimento per approfondire questa situazione!
Tutti i vecchi domini hanno la nuvola arancione attivata? Risolvere il problema disattivando la nuvola arancione? Se sĂŹ, allora, come ho sempre previsto, Richard ha ragione e devi sistemare la tua configurazione.
Ma se lâuso di Cloudflare permette a un malintenzionato (tu in questo caso) di servire il sito di qualcun altro sul suo dominio, questo sembra un problema.
Abbiamo giĂ rimosso i vecchi domini ma sĂŹ, avevano il pulsante arancione abilitato, il problema ora è se qualcuno ottiene il nostro IP del server e un record lĂŹ con lâopzione proxy abilitata, servirĂ il nostro sito con il loro dominio.
Dovresti eseguire discourse-setup per assicurarti di avere davvero unâinstallazione standard. Se incolli il tuo vecchio app.yml potresti avere qualcosa al suo interno che non dovrebbe esserci. Non sono ancora del tutto convinto che tu abbia una configurazione standard.
Non sono ancora convinto che sia cosĂŹ, ma se lo fosse, non câè niente che tu possa fare al riguardo.
Voglio davvero ringraziarvi @pfaffman@RGJ, ora è pulito e quasi a posto
Il problema che stiamo affrontando ora è che tutte le immagini del marchio sono scomparse e lo stesso vale per le immagini di alcuni utenti.
I dati del marchio sono a posto, posso scaricarli dal vecchio server, ma per quanto riguarda le immagini degli utenti e tutte le immagini del sito, sono anchâesse mancanti
Hmm. Beh, se fosse il sito principale, mi aspetterei che quel percorso fosse https://forum.mamapedia.com/user_avatar/forum.mamapedia.com/jakeatgetit/24/5872_2.png, ma anche quello non funziona.
Se hai ancora il vecchio sito, farei un backup di questo e lo ripristinerei sul nuovo sito.
Grazie @pfaffman, quello che ho fatto finora sembra funzionare.
Sono entrato nel vecchio server e ho spostato i dati da /var/discourse/shared/standalone/uploads/default allo stesso percorso sul nuovo server e tutti gli avatar e i post degli utenti sono tornati.
Il nuovo problema è che il branding del sito non funziona anche se provo ad aggiornarlo.
Torno qui per vedere se qualcuno ha qualche idea. Siamo molto vicini a chiudere questa questione da parte nostra, abbiamo solo bisogno di un poâ di assistenza per risolvere il problema del salvataggio âsenza logoâ. Grazie in anticipo per qualsiasi idea per risolverlo!