Nginx Reverse Proxy und IIS

Nginx Reverse Proxy und IIS

Ich verwende nginx als Reverseproxy für eine Website, die auf IIS 7.5 läuft. Die Website ist an gebunden sub-1.foo.bar. Die Nginx-Konfiguration sieht folgendermaßen aus:

server {
    listen 80;

    server_name sub.foo.bar;

    location / {
        proxy_pass http://sub-1.foo.bar;
        proxy_set_header Host $host;
        proxy_set_header X-Accel-Expires 0;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Ich möchte Anfragen, die an sub.foo.bar(Linux-Rechner mit Nginx) gehen, an sub-1.foo.bar(Windows-Rechner mit IIS und meiner Website) weiterleiten. Was jedoch passiert, ist

  • wenn ich auf sub.foo.bar zugreife, erhalte ich die Seite 404
  • wenn ich direkt auf sub-1.foo.bar zugreife, wird meine Website normal von IIS bereitgestellt
  • nginx scheint Anfragen normal an Windows-Rechner weiterzuleiten
  • Ich kann keine eingehenden Anfragen aus IIS-Protokollen sehen, wenn ich auf sub.foo.bar zugreife
  • Wenn ich eine Bindung für sub.foo.bar auf IIS hinzufüge, wird die Website normal mit nginx geproxied

Ich würde mich über alle Ideen freuen, was mit meinem Setup nicht in Ordnung sein könnte. Danke!

Antwort1

Versuchen Sie, den Proxy_set_header-Host "sub-1.foo.bar" manuell hinzuzufügen.

Antwort2

  • Wenn ich eine Bindung für sub.foo.bar auf IIS hinzufüge, wird die Website normal mit nginx geproxied

IIS muss sich darüber im Klaren sein, dass es Anfragen für den Namen beantworten soll sub.foo.bar. Andernfalls leitet es Anfragen an die Standardwebsite weiter. Sie können dies beheben, indem Sie entweder die Bindung erstellen oder indem Sie Ihre Website erstellen/bearbeiten, die für antworten soll sub.foo.bar.

verwandte Informationen