Модуль "Определение реальных IP-адресов пользователей" (Real IP) позволяет веб-серверу платформы Nginx правильно идентифицировать IP-адрес клиента. Это может быть полезно для логирования, ограничения доступа и других функций.
Например, подключение к платформе может осуществляться через обратный прокси-сервер. Обратный прокси-сервер ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. Если пользователь, которому разрешена авторизация только с определённых IP-адресов, пытается подключиться к платформе через обратный прокси-сервер, платформа заблокирует попытку авторизации. Это связано с тем, что подключение будет зарегистрировано с IP-адреса прокси-сервера, а не реального IP-адреса пользователя.
Чтобы разрешить авторизацию таким пользователям, передайте в платформу список сетей, от которых сервер будет принимать заголовки с реальным IP-адресом пользователя.
Настройка через интерфейс платформы
- В правом меню нажмите значок → вкладка Глобальные настройки.
- В разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Настроить.
- Укажите параметры:
- Заголовок, содержащий реальный IP — значение директивы proxy_set_header в Nginx. В большинстве случаев подойдёт значение
X-Forwarded-For
илиX-Real-IP
. Если вы пользуетесь услугами Cloudflare, укажите значениеCF-Connecting-IP
. - Доверенные IP-адреса для приёма заголовка — IP-адреса и подсети в формате IPv4 и IPv6, от которых сервер будет принимать заголовки с реальным IP-адресом пользователя. Актуальный список сетей уточните у вашего провайдера. Например, список сетей Cloudflare доступен по ссылкам https://www.cloudflare.com/ips-v4 и https://www.cloudflare.com/ips-v6.
- Заголовок, содержащий реальный IP — значение директивы proxy_set_header в Nginx. В большинстве случаев подойдёт значение
- Нажмите кнопку Изменить.
Чтобы изменить настройки, в разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Изменить .
Чтобы удалить настройки, в разделе Определение реальных IP-адресов пользователей (Real IP) нажмите кнопку Отключить.
Настройка через API
- Получите токен авторизации:
curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://example.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
Пояснения к командеВ ответ придёт сообщение вида:
Пример ответа в JSON{ "confirmed": true, "expires_at": null, "id": "6", "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a" }
Сохраните полученное значение параметра token — токен авторизации.
- Выполните запрос вида:
curl -k -X POST 'https://example.com/auth/v4/realip/trusted_servers' -d '{"header": "<proxy_set_header>", "ips": ["<network_1>","<network_2>","<network_3>",...,"<network_N>"]}' -H 'x-xsrf-token: <token>'
ПоясненияПример командыcurl -k -X POST 'https://example.com/auth/v4/realip/trusted_servers' -d '{"header": "CF-Connecting-IP", "ips": ["173.245.48.0/20","103.21.244.0/22","103.22.200.0/22"]}' -H 'x-xsrf-token: 4-e9726dd9-61d9-2940-add3-914851d2cb8a'
Чтобы проверить список добавленных сетей, выполните запрос:
curl -k -X GET 'https://example.com/auth/v4/realip/trusted_servers' -H 'x-xsrf-token: <token>'
Чтобы удалить список добавленных сетей, выполните запрос:
curl -k -X DELETE 'https://example.com/auth/v4/realip/trusted_servers' -H 'x-xsrf-token: <token>'