Auf meinem Nginx-Server tritt ein seltsames Problem auf. Ich verwende Nginx als Reverse-Proxy für mehrere Dienste, die intern auf meinen Servern laufen.
Dies ist ungefähr das, was ich erreichen wollte:
app1.mydomain.com --- --- server 1: 10.0.0.2
\ 10.0.0.1 /
|--- nginx reverse proxy server --- |
/ \
app2.mydomain.com --- --- server 2: 10.0.0.3
Also habe ich den ersten für App1 hinzugefügt, die DNS-Einstellungen bei meinem Domain-Provider hinzugefügt und alles hat perfekt funktioniert. Ich war ziemlich aufgeregt, also habe ich den zweiten ausprobiert und dann ist alles kaputt gegangen. Ich habe es ausgeführt nginx -t
und alles hat einwandfrei funktioniert. Der Nginx-Server lief noch ohne Fehler, aber ich konnte app1.mydomain.com nicht mehr anzeigen
Die Konfigurationen sind grundsätzlich gleich, mit Ausnahme des Servernamens und des Proxypassworts.
Datei: /etc/nginx/sites-available/app1.mydomain.com
server {
server_name app1.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Datei: /etc/nginx/sites-available/app2.mydomain.com
server {
server_name app2.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ich habe das so gemacht, indem ich jede Konfiguration in einer eigenen Datei in sites-available hinzugefügt und dannsudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/
Für App1 funktionierte das einwandfrei, aber nachdem ich das für App2 gemacht hatte, verlor ich den Zugriff auf App1 und App2 wurde nicht mehr angezeigt.
In meinem Router habe ich Port 80 und 443 an den Reverse-Proxy-Server 10.0.0.1 weitergeleitet und das sind die einzigen Regeln auf meinem Router. Bei meinem Domain-Name-Provider habe ich die richtigen A-Einträge, die auf die richtige IP zeigen. Ich konnte überprüfen, ob mit App 1 alles funktioniert, aber nachdem ich einen Symlink für App 2 erstellt habe, um in Sites-Enabled zu gehen und Nginx neu zu starten, verliere ich den Zugriff auf alles.
Irgendwelche Ideen, was los ist? Danke!
Antwort1
@symcbean hat tatsächlich auf die Antwort hingewiesen. Die Konfigurationen, die ich gepostet habe, waren unvollständig. Für App1 habe ich genau die angezeigte Konfiguration verwendet (die irgendwie funktioniert hat) und dann certbot ausgeführt, das die TLS-Konfiguration und die Listen-Variable zur Konfiguration hinzugefügt hat.
Dann habe ich die Konfiguration für App 2 hinzugefügt (genau wie gezeigt) und habe keine Fehler auf dem Server erhalten, aber beim Versuch, auf App 1 oder App 2 zuzugreifen, traten Verbindungsfehler auf. Nach dem Hinzufügen der Listen-Konfiguration und dem Neustart von Nginx funktionierte alles.
Danke!