Aus abscheulichen Gründen ... Ich verwende Nginx als Webserver und möchte, dass es eine Seite für interne Benutzer (z. B. am 10.0.0.0/16) und eine andere Seite für externe Benutzer mit einer anderen IP-Adresse bereitstellt.
Zum Beispiel:
"Interner" PC mit einer IP von 10.0.0.34 geht zu company.com/page.html und ruft die Seite internal.html auf
"Externer" PC mit einer IP von 8.8.8.8 geht zu company.com/page.html und ruft die Seite external.html ab
Antworten:
Nutzen Sie das Nginx- Geomodul . Hier können Sie den Wert der Variablen basierend auf einer Client-IP-Adresse festlegen.
geo
Richtlinie muss inhttp
Abschnitt sein:Sie können es später an Speicherorten verwenden, um Dateien nachzuschlagen
Dies bedeutet, dass Nginx
$client
entweder aufextra
oderintra
basierend auf der IP eines Clients festgelegt wird. Nehmen wir an, es ist ein Intranet-Client. Wenn ein Client danach fragtpage.html
, sucht Nginx nach einer Datei/your/root/page.html.intra
. Wenn es keine solche Datei gibt, wird nach gesucht/your/root/page.html
. Wenn keiner von beiden gefunden werden kann, gibt Nginx die Antwort 404 "Nicht gefunden" zurück. Mehr zu "try_files" in der DokumentationDie
index
Direktive unterstützt übrigens auch Variablen. Z.Bquelle