Läuft auf anderem Port als 443: Umleitung zur Nicht-Port-URL deaktivieren

Ich habe app.yml geändert
zu

expose:
  - "20632:80"   # http
  #- "443:443" # https
  - "20633:443"

und möchte Discourse über https://mydomain.com:20633 öffnen, aber dann versucht es, zu https://mydomain.com umzuleiten, was nicht funktioniert.

Wenn ich verwende

expose:
  - "20632:20632"   # http
  #- "443:443" # https
  - "20633:20633"

zeigt netstat -tulpn an, dass es auf diesen Ports lauscht, aber beim Versuch des Zugriffs gibt es ein Timeout.

Ich habe gefunden, dass auf dem Unterordner meta . discourse . org/t/serve-discourse-from-a-subfolder-path-prefix-instead-of-a-subdomain/30507 ausgeführt wird, was nicht zutrifft.

Ich habe auch meta . discourse . org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297 gefunden.
Das geht in die richtige Richtung, ist aber nicht ganz das, was ich brauche.

PS Entschuldigung, dass ich die Links zum Forum entfernt habe, aber anders kann ich nicht posten.

1 „Gefällt mir“

Wir unterstützen keinen Betrieb auf nicht standardmäßigen Ports. Wenn die Ports 80/443 bereits belegt sind, müssen Sie entweder einen separaten Server verwenden, auf dem sie nicht belegt sind, oder einen Reverse-Proxy für Ihre anderen Dienste und Discourse ausführen.

3 „Gefällt mir“

Manchmal bedeutet „wir unterstützen nicht“ „das übersteigt die Hilfe hinaus, die Sie hier erwarten können“, aber dieses Mal bedeutet es „Sie verschwenden Ihre Zeit, wenn Sie es überhaupt versuchen“.

1 „Gefällt mir“

Die Ports sind nicht im üblichen Sinne „belegt“. Discourse kann Port 80 und 443 auf diesem System nutzen, es läuft bereits auf einem separaten Server für sich allein. Ich stecke bei dem Schritt fest, die Umleitung zu deaktivieren/den Port aus der URL zu entfernen, und dann würde alles wie erwartet funktionieren.

1 „Gefällt mir“

Sie können diese Umleitung nicht verhindern.

Wenn Sie nicht über die Standardports veröffentlichen können, wird es überhaupt nicht funktionieren. Ihre Optionen sind hier, einen Server zu verwenden, auf dem :80/443 verfügbar sind, oder eine alternative Diskussionsplattform zu wählen.

1 „Gefällt mir“

Können Sie mir bei der Nginx-Reverse-Proxy-Konfiguration helfen?

Ich habe verschiedene Optionen ohne Erfolg ausprobiert

server {
    listen 20633 ssl;
    server_name mydomain.com;
	
	ssl_certificate /etc/letsencrypt/live/mensa.myftp.org/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/mensa.myftp.org/privkey.pem;

    location / {
        # Entfernen Sie den Port aus der proxy_pass-URL mithilfe eines regulären Ausdrucks
        # Der erfasste Teil des regulären Ausdrucks ($1) wird in der proxy_pass-URL ersetzt
        # Die tatsächliche Backend-Server-IP und der Port werden separat in der proxy_pass-Direktive angegeben
        proxy_pass http://192.168.178.31:80/;
		#$request_uri;
		proxy_redirect http://192.168.178.31:80/ $scheme://$host:20633/;
		#return 301 $scheme://$host:$server_port/home;
		#proxy_redirect http://192.168.178.31:20633 $scheme://$host:80;
        
        # Behalten Sie den vom Client an den Backend-Server gesendeten Host-Header bei
        #proxy_set_header Host $host;
		proxy_set_header Host $http_host;

    }
}
1 „Gefällt mir“

Siehe die Anleitung unter Andere Websites auf demselben Computer wie Discourse ausführen.

2 „Gefällt mir“

Dieses Tutorial ist für die Ausführung auf demselben Server über einen Unix-Socket gedacht. Gibt es auch eine Konfiguration für die Ausführung des Reverse-Proxys auf einem anderen System mit einem anderen Port? Ich denke, das sollte es geben, da dieser Fall häufiger vorkommen könnte. Auf dem anderen Host habe ich bereits ein Zertifikat.
Nur um das klarzustellen: Dieses Setup ist nur zum Testen gedacht. In der Produktion wird es über Port 443 laufen, aber für die Entwicklung und das Testen ist eine VM zu Hause völlig ausreichend und spart in der Zwischenzeit die Kosten für die Anmietung eines Servers.