
Я хочу направить пользователей на различные веб-сервисы с помощью конфигурации nginx.
Сценарий заключается в том, что для внутренних пользователей с именем хоста от 192.168.1.1
до 192.168.1.255
я хочу предоставить им некоторую веб-службу, но для других внешних посетителей я не хочу, чтобы это было реализовано.
Я знаю, что мог бы IP_TABLES
включить эту функцию, но я использую правила IP_TABLE в основном для целей брандмауэра и не хочу смешивать их с этой конфигурацией.
Есть ли какая-либо конфигурация, доступная мне в nginx.conf
?
решение1
Вы можете использовать модуль GEO вместе с директивой карты:
http {
geo $special_service {
default 0;
192.168.1.0/24 1;
}
server {
if ($special_service) {
return 302 $scheme://$server_name/special-service/;
}
}
}
решение2
Создайте отдельный location
блок, посвященный конфиденциальному контенту.
Помните, что директивы конфигурации не наследуются; вам нужно будет включить в новый блок все, что находится в существующем `location и что необходимо для вашего контента.
location /path/to/sensitive/stuff {
# any other config that you need goes here..
# ...
allow 192.168.1.0/24;
deny all;
}