По отвратительным причинам ... Я использую Nginx в качестве веб-сервера и хотел бы, чтобы он обслуживал одну страницу для внутренних пользователей (скажем, 10.0.0.0/16) и другую страницу для внешних пользователей на любом другом IP-адресе.
Например:
«Внутренний» ПК с IP-адресом 10.0.0.34 переходит на company.com/page.html получает страницу internal.html
«Внешний» ПК с IP-адресом 8.8.8.8 переходит на company.com/page.html получает страницу external.html
Ответы:
Использование Сделать из Nginx модуля гео . Это позволяет вам установить значение переменной на основе IP-адреса клиента.
geo
Директива должна быть вhttp
разделе:Вы можете использовать его позже в местах для поиска файлов
Какие средства, Nginx будет установлена
$client
либоextra
или наintra
основе IP клиента. Давайте предположим, что это интранет-клиент. Если клиент запрашиваетpage.html
, Nginx будет искать файл/your/root/page.html.intra
. Если такого файла нет, он будет искать/your/root/page.html
. Если он не может найти ни одного из них, Nginx возвращает 404 «Not Found» ответ. Подробнее о "try_files" в документацииКстати,
index
директива также поддерживает переменные. Напримеристочник