Ich bin etwas verwirrt darüber, wann eine neue Docker-basierte Installation von Discourse den Port 80 freigibt. Lassen Sie mich das erläutern…
Wenn ich ./discourse-setup ausführe, gehe ich davon aus, dass die ersten Fragen (Hostname, E-Mail-Adresse usw.) alle vor der Erstellung des Containers gestellt werden und somit bevor Discourse den Port 80 freigibt. Stimmt das?
Wenn ja, stellt das nicht ein gewisses Henne-Ei-Problem beim Eingeben eines Hostnamens dar?
Ich habe meinen A-Eintrag erstellt (und er ist über den Hostnamen anpingbar). Aber Port 80 ist nicht offen. Ich glaube, ich verstehe warum, nämlich weil der Container noch nicht erstellt ist.
Aber wenn das der Fall ist, wie kann dann die anfängliche Überprüfung des Hostnamens jemals funktionieren, wenn sie durchgeführt wird, bevor der Container erstellt ist?
Offensichtlich habe ich hier eine falsche Annahme, also kann mich jemand bitte aus meinem Elend erlösen?
discourse-setup führt nc aus, um den Port für den Test zu öffnen.
Wenn Sie ein Betriebssystem verwenden, auf dem nc nicht installiert ist, schlägt dieser Test aufgrund dessen fehl. Sie können entweder prüfen, ob ein fehlendes nc das Problem ist, oder einfach davon ausgehen, dass Sie wissen, was Sie tun, und es wird einfach funktionieren.
Die Annahme, ich wüsste, was ich tue, hat sich in der Regel als schlechte Wahl erwiesen! Aber ich ignoriere die Warnung jetzt und mache einfach weiter.
Ich vermute, dass ich trotzdem auf ein Problem stoßen werde, da ich davon ausgehe, dass nc den Port 80 freigeben sollte (ich habe noch keine Firewall), aber das werde ich später regeln.
Nun, genau dafür gibt es diese Tests. Aber sie funktionieren nur für die meisten Leute die meiste Zeit.
Wenn du nc in der Befehlszeile eingibst und eine command not found-Meldung erhältst, kannst du davon ausgehen, dass der Test fehlerhaft ist (was nicht bedeutet, dass dein Domainname auf deinen Server aufgelöst wird und der Port erreichbar ist).
Ich hatte dieses Problem, als ich meinen ersten Server eingerichtet habe, und ärgerlicherweise löste es sich nach ein paar Stunden von selbst. Solche Probleme deuten oft auf ein DNS-Replikationsproblem hin, aber ich verwende CloudFlare DNS (niedrige TTL) und kann über den Hostnamen problemlos pingen.
Die Docker-Installation wurde erfolgreich abgeschlossen und nc ist verfügbar.
docker ps zeigt an, dass sowohl Port 80 als auch Port 443 an den Container weitergeleitet werden.
sof -i -P -n meldet, dass docker-pr ebenfalls auf beiden Ports lauscht.
Ich habe nie herausgefunden, warum dieses Problem bei der ersten Installation aufgetreten ist, aber da es nun erneut passiert ist, werde ich tiefer graben und Fehler suchen. Ich habe es noch nicht herausgefunden, vermute aber, dass es sich um eine grundlegende Konfigurationsfrage handelt.
Ist die orange Wolke aktiviert? Wenn Cloudflare nur als DNS dient, ist alles in Ordnung. Befindet es sich jedoch dazwischen, funktioniert Let’s Encrypt nicht, was der Zweck des Tests ist.
Die Orange Cloud ist aus. Ich möchte dich damit nicht weiter belästigen, Jay. Das ist eine interessante kleine Fehlerbehebungsherausforderung, und ich werde sie lösen.
Ich bin mir ziemlich sicher, dass es nicht an der DNS-Replikation liegt, da ich die Site von zahlreichen Geräten über den Hostnamen (über WLAN, Mobilfunk usw.) erreichen kann. Ich melde mich hier zurück, wenn dies gelöst ist.