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…
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;
}
}
Zum Referenzieren sind npm und der nginx proxy manager unterschiedliche Dinge. Sie verwechseln Ihre Terminologie und damit die Leute, die versuchen, Ihnen zu helfen.
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.
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…
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 ).
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!
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.
========================================
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?
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?