Как работает модуль geo в nginx? Добрый день! Начал изучать веб-серверы, в частности nginx, смотрю разные настройки и конфиги, но вот с модулем geo не разобрался, в т.ч. по оф.документации. Увидел на одном веб-сервере такую настройкуgeo $nonlocal_addr {
default 1;
192.168.0.0/16 0;
172.16.0.0/12 0;
10.0.0.0/8 0;
}
понятно, что там отмечены локальные адреса, но что значит 0 в конце?) ну и вообще ликбез по гео был бы оочень нужен
Спасибо заранее

8 Окт 2020 в 19:48
561 +1
0
Ответы
1

Как работает модуль geo в nginx

Модуль geo в nginx используется для создания переменных, значения которых зависят от IP-адреса клиента. Это позволяет настраивать поведение сервера в зависимости от географического расположения или принадлежности IP-адреса к определённой сети.

Пример конфигурации

Ваш пример конфигурации:

geo $nonlocal_addr {

default 1;

192.168.0.0/16 0;

172.16.0.0/12 0;

10.0.0.0/8 0;

}

Объяснение

geo $nonlocal_addr { ... }: Создаёт переменную $nonlocal_addr, значение которой зависит от IP-адреса клиента.

default 1;: Устанавливает значение переменной по умолчанию равным 1. Это значение будет присвоено переменной, если IP-адрес клиента не совпадает ни с одним из указанных диапазонов.

192.168.0.0/16 0;: Если IP-адрес клиента попадает в диапазон 192.168.0.0/16, переменной $nonlocal_addr присваивается значение 0.

172.16.0.0/12 0;: Аналогично, для диапазона 172.16.0.0/12 значение переменной будет 0.

10.0.0.0/8 0;: Для диапазона 10.0.0.0/8 значение переменной также будет 0.

Применение

Эта конфигурация позволяет различать локальные и внешние IP-адреса. Например, вы можете использовать переменную $nonlocal_addr для ограничения доступа к определённым ресурсам или для применения различных настроек в зависимости от того, является ли клиент локальным или внешним.

Пример использования

server {

listen 80;

server_name example.com;


location / {

if ($nonlocal_addr) {

return 403; # Запретить доступ для внешних IP-адресов

}

# Разрешить доступ для локальных IP-адресов

proxy_pass http://backend;

}

}

В этом примере доступ к ресурсу будет запрещён для внешних IP-адресов (значение переменной $nonlocal_addr равно 1), и разрешён для локальных IP-адресов (значение переменной $nonlocal_addr равно 0).

12 Сен 2024 в 23:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир