Ich habe kürzlich die Anleitung install-cloud befolgt, um Discourse auf einer AWS Lightsail-Instanz zu installieren. Trotz sorgfältiger Befolgung der Anweisungen und mehrfacher Neuanfänge erhalte ich leider die Fehlermeldung “connection refused”, wenn ich versuche, auf mein Forum zuzugreifen.
Die Schritte, die ich befolgt habe, waren:
Eine neue Lightsail-Instanz erstellen
Eine statische IP-Adresse zuweisen
Port 443 öffnen
Meine Subdomain (forum.procedural.audio) auf die IP-Adresse verweisen
Die Discourse-Installationsbefehle in der Anleitung befolgen, einschließlich der Angabe einer E-Mail-Adresse für LETS_ENCRYPT
Mein Forum aufrufen… Verbindung verweigert
Die Ausführung von ./discourse-doctor gibt aus, dass die Discourse-Version unter forum.procedural.audio NICHT GEFUNDEN wird. Ich kann erfolgreich eine Test-E-Mail von Discourse empfangen.
Die Ausführung von ping forum.procedural.audio empfängt keine Daten zurück, findet aber die korrekte statische IP.
Ich habe die folgenden Fehler in den Protokollen bemerkt:
Es scheint also, dass das Problem SSL-bezogen ist, obwohl ich mir nicht sicher bin, wie ich es beheben kann. Im Verzeichnis shared/standalone/ssl/ befinden sich vier Dateien:
forum.procedural.audio.cer (Datei ist leer)
forum.procedural.audio.key (Datei enthält einen Schlüssel)
forum.procedural.audio_ecc.cer (Datei ist leer)
forum.procedural.audio_ecc.key (Datei enthält einen Schlüssel)
Ich bin mir also nicht sicher, ob die leeren .cer-Dateien Teil des Problems sind. Ich stelle jedoch auch fest, dass die Protokolle darauf hindeuten, dass nach der Datei unter /shared/ssl/* anstelle von /shared/standalone/ssl/* gesucht wird, was ebenfalls relevant zu sein scheint.
Das Problem ist, dass Ihre Lightsail-Instanz extern nicht erreichbar ist. Das hat Ihnen discourse-doctor mitgeteilt – wenn Sie nur Port 443 geöffnet haben, ist das wahrscheinlich der Grund.
HTTPS über 443 funktioniert erst, wenn Sie ein Zertifikat haben. Sie haben kein Zertifikat (und diese Zertifikatsdateien sind leer), weil Let’s Encrypt aufgrund des Kommunikationsproblems keine Registrierung vornehmen konnte.
Wenn Sie eine statische externe Adresse zugewiesen haben, öffnen Sie auch Port 80 und versuchen Sie es erneut. 80 muss sowieso geöffnet sein, damit jeder Client, der über HTTP eine Verbindung herstellt, umgeleitet werden kann.
forum.procedural.audio erscheint nicht in DNS, oder anders ausgedrückt, der Hostname wird keiner IP zugeordnet. Ich habe dies gerade über CloudFlare und Google DNS überprüft, keiner von beiden kann diesen Hostnamen finden. Wenn ich ihn nicht auflösen kann, dann kann es discourse-doctor auch nicht.
Wann haben Sie den ‘a’-Eintrag für Ihren Server erstellt? Haben Sie die Replikationszeiten überprüft?
Stellen Sie sicher, dass dies behoben ist, bevor Sie versuchen, den Server erneut zu erstellen. Let’s Encrypt gibt eine begrenzte Anzahl von Versuchen zur Registrierung/Erneuerung vor, und wenn Sie diese erreichen, können Sie sieben Tage lang kein Zertifikat erhalten.
Ich habe die Domain seit zwei Tagen bei Namecheap, die auf Route 53 verweist (die zusätzliche Indirektionsebene besteht darin, dass Route 53 keine .audio-Domains unterstützt). Der Haupteintrag für die Domain existiert seit den meisten dieser zwei Tage. Der Eintrag für die Subdomain existiert seit etwa einer Stunde.
Wenn dies das Problem gewesen wäre, dann würde ein ping forum.procedural.audio von meiner Instanz aus meiner Meinung nach die IP-Adresse nicht auflösen können. Aber die IP wird aufgelöst.
Hmm. Nun, https://dnschecker.org/#A/forum.procedural.audio zeigt, dass der Name an vielen Orten aufgelöst wird, also ist es vielleicht ein Weiterleitungsproblem. Wenn 1.1.1.1 oder 8.8.8.8 ihn abfragen, erhalte ich keine Antwort. NS-337.AWSDNS-42.COM gibt ihn jedoch zurück, sodass Sie möglicherweise nur eine Weile warten müssen.
Aber discourse-setup versucht, die Adresse abzurufen und zu sehen, ob es sich selbst verbinden kann. Wenn das fehlschlägt, ist es normalerweise entweder ein DNS-Problem oder dass Ports nicht geöffnet sind.
Es ist fast eine Woche her und ich kann immer noch kein Forum bereitstellen. Hat jemand weitere Ideen? Ports 80 und 443 sind offen. Ich glaube nicht, dass dies ein DNS-Problem ist – discourse-doctor findet die Discourse-Version nicht unter localhost (zusätzlich zu forum.procedural.audio). Jede Hilfe wird geschätzt.
Ich lag also falsch, bin mir aber nicht sicher, was ich tun soll. Ich bin mir nicht sicher, warum discourse-doctor die Discourse-Version nicht unter localhost finden kann.