Я пытаюсь ограничить доступ к ресурсам за Nginx на основе IP-адреса клиента, переданного в заголовках X-forwarded-for. Nginx работает в контейнере в кластере Kubernetes на облачной платформе Google, а реальные ips клиента передаются только в заголовке x-forwarded-for
До сих пор мне удалось сделать это для одного IP со следующим кодом:
set $allow false;
if ($http_x_forwarded_for ~* 123.233.233.123) {
set $allow true;
}
if ($http_x_forward_for ~* 10.20.30.40) {
set $allow false;
}
if ($allow = false) {
return 403;
}
Но как я могу сделать это для целых диапазонов IP-адресов? Указывать сотни IP-адресов вручную не имеет особого смысла.
Вся помощь приветствуется
location / { real_ip_header X-Forwarded-For; set_real_ip_from 10.0.0.0/8; real_ip_recursive on; allow xxx.xxx.xxx.xxx;