Pour des raisons hideuses d'entrer ... J'utilise Nginx comme serveur Web et je voudrais qu'il serve une page pour les utilisateurs internes (disons le 10.0.0.0/16) et une autre page pour les utilisateurs externes sur n'importe quelle autre adresse IP.
Par exemple:
Le PC "interne" avec une IP de 10.0.0.34 va sur company.com/page.html obtient la page internal.html
Un PC "externe" avec une IP de 8.8.8.8 va sur company.com/page.html obtient la page external.html
Réponses:
Utilisez le module géographique Nginx . Il vous permet de définir la valeur de la variable en fonction d'une adresse IP client.
geo
La directive doit être dans lahttp
section:Vous pouvez l'utiliser plus tard dans des emplacements pour rechercher des fichiers
Ce qui signifie que Nginx sera défini
$client
surextra
ouintra
basé sur l'IP d'un client. Supposons que c'est un client Intranet. Si un client le demandepage.html
, Nginx recherchera le fichier/your/root/page.html.intra
. S'il n'y a pas un tel fichier, il recherchera/your/root/page.html
. S'il ne trouve aucun de ces éléments, Nginx renvoie la réponse 404 "Not Found". Plus d'informations sur "try_files" dans la documentationSoit dit en passant, la
index
directive prend également en charge les variables. Par exemplela source