Diskussion über Google Cloud Port-Problem?

Hallo zusammen! Ich habe es jetzt ein paar Mal versucht, Discourse auf Google Cloud zum Laufen zu bringen. Aktuell bin ich beim dritten Versuch, eine VM-Instanz (Ubuntu 18.04 minimal) zu erstellen und Discourse manuell über das Terminal zu installieren. Nach dem Leitfaden scheint alles in Ordnung zu sein – aber nachdem ich ./discourse-setup abgeschlossen habe, kann ich die Seite nicht erreichen.

Ich habe auch versucht, Discourse mit den „One-Click“-Bereitstellungslösungen des Google Marketplace zu installieren (die von Google selbst und von Bitnami). Dabei konnte ich auf die Discourse-Startseite zugreifen.

Ich vermute, dass es ein Problem mit Google und den Ports gibt (und dass dieses Problem bei den fertigen Installationen umgangen wurde) – aber ich weiß zu wenig darüber, um es selbst zu debuggen. Habt ihr eine Idee?

2 „Gefällt mir“

Könnte das mit der Firewall zusammenhängen?
Meines Wissens nach müssen wir bei G Cloud zwei Kontrollkästchen aktivieren, um den öffentlichen Zugriff auf eine VM zu ermöglichen. Dies kann bei Bedarf später noch konfiguriert werden.

3 „Gefällt mir“

Hey Bhanu, danke für den Hinweis!

Diese Kästchen sind bereits angehakt!

Immer noch funktioniert es nicht. Ich versuche, die Seite zu pingen, alles sieht gut aus:

Ich verbinde mich per SSH mit der Seite und führe netstat aus, um die Ports zu prüfen. Das ist das Ergebnis:
ports

Ich bin mir mit netstat allerdings nicht so vertraut.

1 „Gefällt mir“

Ich denke jetzt, dass ich vielleicht gar keinen Webserver laufen habe? Muss ich Nginx vor oder nach der Installation von Discourse installieren oder so? Ich folge einem Gedankengang aus diesem Thread, der meinem Problem identisch ist.

Okay, ich beginne zu glauben, dass dies das Problem ist. Es schien, als wäre Nginx installiert, aber nicht aktiv. Ich habe die PIDs 14311 und 14295 von docker-proxy beendet und dann Nginx gestartet. Jetzt ist Nginx an Port 80 gebunden, und wenn ich auf meine Seite zugreife, werde ich von Nginx begrüßt!
Jetzt muss ich die Docker/Discourse-Sache wieder zum Laufen bringen.

Ich habe auch diese Anleitung zur Installation von Discourse/Nginx auf einer älteren Ubuntu-Version gefunden. Sie scheinen aus irgendeinem Grund den Port für Docker geändert zu haben, weg von Port 80. Vielleicht gibt es hier einen Konflikt.

Irgendwie habe ich es geschafft, sowohl Nginx auf Port 80 laufen zu lassen als auch docker-proxy auf den Ports 8060 für HTTP und 9443 für HTTPS lauschend (wie in einem anderen Tutorial vorgeschlagen). Aber nachdem ich das erreicht habe, bin ich wieder ratlos. Discourse scheint ein so schönes Forum zu sein, aber anscheinend unmöglich für Anfänger wie mich auf Google Cloud zu installieren.

2 „Gefällt mir“

Sie müssen keinen dedizierten Webserver betreiben, es sei denn, Sie planen, den Server für mehr als nur das Hosten von Discourse zu nutzen, da Discourse bereits einen integrierten Nginx-Server enthält. Können Sie bitte bestätigen, dass Ihrem Server eine öffentliche IP-Adresse zugewiesen ist und dass dieser so konfiguriert ist, dass externe Verbindungen zu den Ports 22, 80 und 443 zugelassen werden?

Siehe: VPC firewall rules  |  Cloud Next Generation Firewall  |  Google Cloud Documentation

2 „Gefällt mir“

Ja. Meine VM-Instanz bei Google hat eine öffentliche IP-Adresse und erlaubt den Verkehr auf den Ports 22, 80 und 443.

Ich gehe davon aus, dass dies auch demonstriert wurde, als ich die Prozess-IDs des docker-Proxy (auf den Ports 80 und 443) beendet habe, Nginx (auf Port 80) gestartet habe und die Nginx-Startseite auf meiner Website aufrufen konnte.

1 „Gefällt mir“

Das deutet also auf ein Problem mit der Installation selbst hin. Wenn es sich um eine Neuinstallation handelt, ist es wahrscheinlich einfacher, die VM einfach zu löschen und erneut einzurichten.

2 „Gefällt mir“

Ich habe es bereits dreimal installiert, und die Ports sind jedes Mal ungebunden. Es gab drei erfolgreiche Installationen, aber ich konnte nie auf das Forum zugreifen. Deshalb überlege ich, einfach die Google-Version zu verwenden (die funktioniert, aber das Einrichten von SMTP nicht erlaubt) und dann einen Weg zu finden, SMTP in der Google-Version einzurichten.

1 „Gefällt mir“

Kann ich SMTP nach Abschluss der Installation einrichten?

Nach „Schritt 11

2 „Gefällt mir“

Es tut mir leid, aber ich habe keine Ahnung, wie das Google Cloud Image eingerichtet ist. Ich habe mehr als ein Dutzend Installationen durchgeführt (darunter eine letzte Woche), und ich bin mir ziemlich sicher, dass es wahrscheinlich mit der Konfiguration Ihrer VM zu tun hat.

Das sind meine Vorbereitungsschritte, bevor ich den offiziellen Installationsleitfaden befolge:

  1. Compute Engine so einrichten, dass HTTP- und HTTPS-Datenverkehr zugelassen wird.
  2. DNS einrichten und bestätigen.
  3. Die Verbindung zu Ihrer VM über SSH sicherstellen.

Ich kann versichern, dass der Prozess funktioniert.

PS: Ich verwende in der Regel die minimale Version von Ubuntu auf Gcloud, um Discourse zu installieren.

1 „Gefällt mir“

Haben Sie die offizielle Standardinstallation von Discourse nicht durchgeführt?

1 „Gefällt mir“

Hm. Sehr seltsam. Aber danke, dass du bestätigt hast, dass es auf Google Cloud tatsächlich möglich ist. Ich finde auch, dass Discourse sich gut installieren lässt, und dass das Problem bei der VM bzw. den Ports liegt. Ich werde es morgen also noch einmal versuchen, obwohl ich diese Vorbereitungsschritte jedes Mal durchgeführt habe. Danke, Bhanu.

@pfaffman Ich habe es.

2 „Gefällt mir“

Außerdem ist es doch nicht die ‘Computer Engine’, auf die Sie HTTP/HTTPS-Datenverkehr zulassen, oder? Es ist doch die ‘VM-Instanz’?

1 „Gefällt mir“

Compute Engine ist die Google-Bezeichnung für eine VM, wenn ich mich recht erinnere.

1 „Gefällt mir“

Discourse-setup prüft beim Ausführen die Ports. Bestehen diese Tests?

2 „Gefällt mir“

Ich werde mich jetzt darum kümmern. Alte Instanzen und das Projekt wurden entfernt, ein neues Projekt und eine neue Instanz wurden auf Google Cloud erstellt. Ich werde versuchen, Discourse jetzt zu installieren und melde mich zurück, um die geprüften Ports mitzuteilen!

2 „Gefällt mir“

Okay, also ein paar Tage später. Es funktioniert!

Ich habe den gleichen Prozess noch einmal durchlaufen, war diesmal aber bei jedem Schritt sorgfältiger. Ich habe meine Instanz und mein Projekt bei Google Cloud gelöscht und mit einem frischen Projekt begonnen.

Anschließend habe ich ein neues Projekt und eine neue Instanz erstellt. Ubuntu 18.04 LTS minimal. HTTP/HTTPS aktiviert. Bevor ich dem offiziellen Leitfaden folgte, der oben verlinkt ist, habe ich wie von Bhanu empfohlen die Konnektivität getestet. Ich habe das „Willkommens-Tutorial

6 „Gefällt mir“

Ich weiß nicht, warum ich meinen vorherigen Beitrag nicht bearbeiten kann, aber ein Moderator wird sie vielleicht zusammenführen.
Ich wollte nur hinzufügen, dass ich denke, dass mein Problem und die Lösung MÖGLICHERWEISE darin bestanden haben, dass ich zu ungeduldig war.

Da ich kürzlich ein fehlerhaftes Plugin installiert hatte, musste ich meine Discourse-Instanz komplett neu aufsetzen. Als ich diese neue Instanz startete, bekam ich eine neue IP-Adresse. Also ging ich zu meinem Hosting-Service, aktualisierte meinen A-Eintrag/DNS, der meine Subdomain discourse.mydomain.com auf die IP meiner Google Cloud-Instanz verweist, und ging dann zurück zu meinem Google Cloud SSH, um das Setup auszuführen.

Beim ersten Ausführen von ./discourse-setup überprüft das Setup, ob Ports 80 und 443 gebunden werden können. Aus irgendeinem Grund weigerte es sich jedoch erneut, an 80 und 443 zu binden. Ich habe die DNS-Einträge über who.is abgefragt, und die Subdomain löste sich korrekt auf die IP auf – aber es funktionierte immer noch nicht. Ich habe ./discourse-setup dreimal ausgeführt, ohne Erfolg. Mit netstat -ltnpu überprüft, nichts Besonderes. Fünf Minuten gewartet, es zum vierten Mal ausgeführt, und jetzt hat es funktioniert.

2 „Gefällt mir“

Ich kann meinen vorherigen Beitrag nicht bearbeiten. Aber ich hatte tatsächlich erneut Probleme bei der Installation. Dieses Mal habe ich zudem folgende Ausnahmen in meiner Firewall hinzugefügt:

Die SMPT-Einstellung ist wahrscheinlich nicht erforderlich, aber die „Egress“-Regeln für Port 80 und 443 scheinen notwendig gewesen zu sein.

1 „Gefällt mir“

Ich denke, es ist nicht erforderlich, irgendeine ausgehende Regel zu konfigurieren, da alle Ports standardmäßig geöffnet sind, außer Port 25, der immer blockiert ist.

3 „Gefällt mir“