Verwenden von Nginx zum Erstellen einer Corporate-Dachsite

Verwenden von Nginx zum Erstellen einer Corporate-Dachsite

Mein Kunde möchte alle seine Projekte unter einem Dach zusammenfassen, ohne sie von ihren ursprünglichen Standorten zu verschieben. Beispielsweise hat er bereits eine Site, die unter den Namen realestate.com und movers.com läuft, und möchte sie nun unter corporate.com zusammenfassen, sodass der Link corporate.com/real auf real.corporate.com abgebildet wird und die Website anzeigt, die unter realestate.com gehostet wird. Dies ist keine Umleitung, daher zeigt die URL-Leiste real.corporate.com für realestate.com an und alle Links sind auch relativ, z. B. wird realestate.com/index.html als real.corporate.com/index.html angezeigt. realestate.com/portfolio/houses/pictures wird zu real.corporate.com/portfolio/houses/pictures. Ich habe versucht, proxy_pass zu verwenden, aber das ändert die URL. Ich teste es derzeit mit einer Site und im Folgenden ist mein Serverblock aufgeführt.

server{
listen 80;

location / {
proxy_pass http://www.realestate.com/;
sub_filter_once off;
proxy_redirect off;
proxy_set_header Host $host;
}
}

Diese Einstellung führt mich direkt zu realestate.com und die URL wird auch im Browser geändert. Das Ändern des Standorts location /realführt zu einem 404-Fehler.

Bitte helfen Sie

Antwort1

Ihre Konfiguration führt keine Weiterleitungen durch. Die Weiterleitung wird vom Upstream-Webserver an gesendet realestate.com.

Die Anwendung sendet eine Umleitung an realestate.com, da die Anforderung nicht an die in der Anwendung konfigurierte Domäne gesendet wird.

Sie können dies ändern, indem Sie

proxy_set_header Host www.realestate.com;

Diese Einstellung sendet die Upstream-Proxy-Anforderung mit Host: www.realestate.comHeader, wodurch sie beim richtigen virtuellen Server im Upstream-Server landet.

Es kann jedoch weiterhin ein Problem mit von generierten Links geben www.realestate.com.

Wenn außerdem www.realestate.comeine HTTP-Weiterleitung gesendet wird, müssen Sie den Weiterleitungsinhalt durch eine proxy_redirect default;Direktive ersetzen.

verwandte Informationen