Discourse-app-Container startet und stoppt dann leise

Richtig! Ich habe dummerweise die Konfiguration auf der oben genannten Seite angewendet, mit anderen Nginx-Konfigurationsdateien verglichen und konnte nicht verstehen, warum der Proxy nicht auf 80:443 für Discourse hören würde… :confused:

Hier ist, was ich erwartet hätte zu sehen:

server {
	listen 80;
	server_name discourse.mydomain.com;
    return 301 https://$host$request_uri;  # Weiterleitung zu https
}

server {
	listen 443 ssl
	listen [::]:443 ssl;
	server_name discourse.mydomain.com;

	ssl_certificate      /etc/letsencrypt/live/discourse.mydomain.com/fullchain.pem;
	ssl_certificate_key  /etc/letsencrypt/live/discourse.mydomain.com/privkey.pem;

	root /var/www/html;

	# Füge index.php zur Liste hinzu, wenn du PHP verwendest
	index index.html index.htm index.nginx-debian.html;

	location / {
      proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:; # Socket verwenden
      proxy_set_header Host $http_host;
      proxy_http_version 1.1;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
	}
}

NPM: Ich habe @pfaffman’s Rat befolgt und Use Nginx Proxy Manager to manage multiple sites with Discourse gelesen, daher habe ich die Option zur Installation von NPM evaluiert, aber das erscheint übertrieben…

Vielen Dank an alle für eure Hilfe!

Zum Referenzieren sind npm und der nginx proxy manager unterschiedliche Dinge. Sie verwechseln Ihre Terminologie und damit die Leute, die versuchen, Ihnen zu helfen.

2 „Gefällt mir“

Dann müssen Sie nginx so konfigurieren, dass es Anfragen an Discourse weiterleitet.

Ich empfehle Ihnen, einfach eine neue VM nur für Discourse einzurichten.

1 „Gefällt mir“

Es tut mir leid, Stephen, wegen der Verwirrung. Ich habe nur den Namen des Tools verwendet, auf das im Artikel Bezug genommen wird. Ich verstehe, dass NPM und nginx (als) Proxy-Manager unterschiedliche Dinge sind, deshalb habe ich Großbuchstaben verwendet…

Das ist genau das, was ich versuche zu tun, und ich verstehe, dass Sie dabei nicht unterstützen können. Dennoch wäre jeder Hinweis / Link willkommen!

Das kann ich einfach nicht, Jay: Ich versuche, einem Freund bei der Bereitstellung der App zu helfen, und kann dessen Serverkonfiguration nicht ändern. Deshalb muss ich das Nginx-Problem beheben…

Übrigens, mein Verständnis ist:

  • Discourse lauscht auf den Ports 80/443.
  • Nginx fungiert als Switch und leitet Anfragen basierend auf dem Domainnamen an verschiedene Anwendungen weiter:
    • netxcloud.mydomain.com versucht, Port 80 zu erreichen → Anfrage wird an server_IP:8000 weitergeleitet
    • crm.mydomain.com versucht, Port 80 zu erreichen → Anfrage wird an server_IP:9000 weitergeleitet
    • discourse.mydomain.com versucht, Port 80 zu erreichen → Anfrage wird an http://unix:/var/discourse/shared/standalone/nginx.http.sock: weitergeleitet (ich hoffe, der nachgestellte Doppelpunkt ist kein Tippfehler), da das Setup-Skript Discourse so konfiguriert hat, dass es auf diesen Socket lauscht.

Liege ich damit richtig?

Vielen Dank für Ihre Hilfe!

Das ist ziemlich ärgerlich und verwirrend, aber um @jlgarnier fair zu sein, wurde diese Abkürzung zuerst von @tophee oder @pfaffman in Using Nginx Proxy Manager to manage multiple sites with Discourse verwendet, um Nginx Proxy Manager zu bezeichnen. Ich mag es nicht, aber wenn es ‘falsch’ ist, ist das nicht wirklich die Schuld des OP.

Zum Beispiel hat das Thema einen Abschnitt namens Install NPM, der sich ausschließlich auf Nginx Proxy Manager konzentriert.

Das hat mich auch getäuscht. Ärgerlich, wie dieses Projekt acht Jahre nach dem Original ein bestehendes Akronym gekapert hat.

2 „Gefällt mir“

Ich bin mir nicht sicher, ob sie das getan haben; ich habe ihre Website durchsucht und sie nicht selbst die Abkürzung verwenden sehen.

Sie verwenden es in ihren Docker-Setups. nginx-proxy-manager/docker/docker-compose.dev.yml at develop · NginxProxyManager/nginx-proxy-manager · GitHub

services:
  npm:
    image: nginxproxymanager:dev
    container_name: npm_core
1 „Gefällt mir“

Ah, ups! Das hatte ich nicht bemerkt. :slightly_smiling_face:

Hallo zusammen,

Ich werde heute Nachmittag versuchen, Nginx erneut einzurichten. Kann mir jemand die genaue Syntax für den Socket bestätigen: http://unix:/var/discourse/shared/standalone/nginx.http.sock:? Ich möchte sicherstellen, dass der nachgestellte Doppelpunkt kein Tippfehler ist…

Vielen Dank im Voraus für jede Hilfe!

Ich glaube nicht, dass der Doppelpunkt dort sein sollte, nein.

In der Tat… Ich habe in discourse.conf die Änderungen, die ich letzten Freitag vorgeschlagen habe, angewendet und Discourse läuft jetzt einwandfrei! Zumindest kann ich die Willkommensseite erreichen, aber ich erhalte keine Aktivierungs-E-Mail, was nichts mit Discourse zu tun hat (ich vermute, mein Freund hat das angeforderte E-Mail-Konto nicht erstellt :blush:).

Ich schulde Ihnen einen herzlichen Dank für die Hilfe, die Sie geleistet haben, und hoffe, dass ich nicht zu bald wieder in dieses Forum komme! :wink:

2 „Gefällt mir“

Endlich, früher als erwartet zurück, aber ihr werdet mich wahrscheinlich mit euren tollen Vorschlägen wieder loswerden können! :grin:

Die Situation ist:

  • Discourse läuft, Docker (oder Portainer) zeigt an, dass der Container fehlerfrei ist und ich kann die Willkommensseite forums.mydomain.com erreichen.
  • Ich erhalte keine Aktivierungs-E-Mail, obwohl das technische E-Mail-Konto ordnungsgemäß erstellt wurde (Hosting-Provider = OVH).
  • Ich habe getestet, ob das Senden einer E-Mail von diesem technischen Konto aus funktioniert (mit der untenstehenden Konfiguration) = OK.
  • Die aktuelle E-Mail-Konfiguration lautet:
DISCOURSE_SMTP_ADDRESS: ssl0.ovh.net
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: forums@mydomain.com
DISCOURSE_SMTP_PASSWORD: "Str0ngPassw0rd"
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_DOMAIN: mydomain.com
DISCOURSE_NOTIFICATION_EMAIL: noreply-forums@mydomain.com

Ich weiß nicht wirklich, wo ich mit der Untersuchung beginnen soll und würde mich über jeden Rat freuen!

Vielen Dank im Voraus für eure Hilfe!

Das Erste, was ich überprüfen werde, ist, ob forums@mydomain.com so konfiguriert wurde, dass es im Namen von noreply-forums@mydomain.com sendet. Dies muss bei Ihrem E-Mail-Anbieter überprüft werden.

1 „Gefällt mir“

Ich bin mir nicht sicher, ob diese Adresse „im Namen von“ senden kann, daher habe ich app.yml aktualisiert, um dieselbe Adresse festzulegen:

DISCOURSE_SMTP_ADDRESS: ssl0.ovh.net
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: forums@mydomain.com
DISCOURSE_SMTP_PASSWORD: "Str0ngPassw0rd"
DISCOURSE_SMTP_ENABLE_START_TLS: false
DISCOURSE_SMTP_DOMAIN: mydomain.com
DISCOURSE_NOTIFICATION_EMAIL: forums@mydomain.com

Versucht, telnet ssl0.ovh.net 465 = OK

Jedoch berichtet discourse-doctor:

========================================
Discourse 2.9.0.beta9
Discourse version at forums.mydomain.com: Discourse 2.9.0.beta9
Discourse version at localhost: NOT FOUND
==================== DNS PROBLEM ====================
This server reports NOT FOUND, but forums.mydomain.com reports Discourse 2.9.0.beta9 .
This suggests that you have a DNS problem or that an intermediate proxy is to blame.

[... ]

Testing sending to myprivatemail@yahoo.fr using ssl0.ovh.net:465, username:forums@mydomain.com with plain auth.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::ReadTimeout

====================================== SOLUTION =======================================

Könnte das E-Mail-Problem mit dem angeblichen DNS-Problem zusammenhängen? Ich habe keinen „Zwischenproxy“, sondern nur Nginx als Proxy-Webserver laufen…

Das ist wahrscheinlich Ihr Problem. Können Sie einen anderen Port ausprobieren? Ich habe die besten Ergebnisse mit Port 587 erzielt, wenn dieser von Ihrem E-Mail-Anbieter unterstützt wird.

Sie müssen dies auskommentieren oder auf true setzen, wenn Sie den Port auf 587 ändern.

Nein, mein E-Mail-Anbieter (derselbe wie mein Hosting-Anbieter) erlaubt nur Port 465. Übrigens habe ich gelesen, dass ich SPF- und DKIM-Einträge für die Domain (ist das eine Subdomain?) einrichten muss und ich habe bisher keine davon eingerichtet: Könnte das Auswirkungen haben?

Siehe E-Mail-Fehlerbehebung bei einer neuen Discourse-Installation

1 „Gefällt mir“

Ich sehe mir den Beitrag an, habe aber einige Informationen vergessen:

  • Die DNS-Verwaltung erfolgt durch unseren Hosting-Provider (für einige Dienste), sagen wir auf ServerA.
  • Discourse läuft auf einem anderen Server (ServerB), der von einem anderen Anbieter gehostet wird.

Mein Verständnis ist dann: Discourse auf ServerB verbindet sich mit dem Mailserver auf ServerA und authentifiziert sich mit E-Mail/Passwort, um den von ServerA Hosting-Provider bereitgestellten SMTP-Dienst zu nutzen.

Ist dies eine ungewöhnliche Konfiguration oder kann ich hier immer noch die normale app.yml-E-Mail-Konfiguration verwenden?