Задать вопрос
nikitasius
@nikitasius

Как обыграть $remote_addr в allow?

Добрый вечер.
nginx собран с модулем "ngx_http_realip_module".

В конфиге доступа прописано:
allow  127.0.0.1;
[allow на ipv4 и ipv6 сервера]
allow  199.27.128.0/21;
[allow на другие подсети cloudflare];
deny all;


Далее есть строки (в конфиге выше строк с allow):
set_real_ip_from  199.27.128.0/21;
[set_real_ip_from  другие подсети cloudflare];
real_ip_header     CF-Connecting-IP;


Я вижу в логах, что nginx правильно определяет ip клиента из хедера, который передается ему с серверов cloudflare, но клиент получает 403, так как ip клиента не входит в ip, прописанные в allow секции.

Я пытался обыграть как:
allow $remote_addr; (так как тут хранится ip клиента)
или
set $newuserip $remote_addr;
allow $newuserip;


В обоих случаях nginx пишет
nginx: [emerg] invalid parameter "$newuserip " in

nginx: [emerg] invalid parameter "$remote_addr" in

Можно ли как-нибудь обыграть текущий ip клиента в allow секции (сделать ее динамической)?
Это нужно, чтобы: *видеть с логах актуальный ip.

*я его и так вижу как header, но нужно чтобы было "красиво".
  • Вопрос задан
  • 2647 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@neolink
закройте 80 порт с помощью iptables
Ответ написан
@Nc_Soft
Просто смените формат логов.

Кстати, у меня есть вопрос про cdn cloudflare: я заметил, что пока файл качает первый запросивший и он заливается в кеш cdn никто другой не может его скачать. Соединения на файл просто висят и ждут. Потом уже раздается с cloudflare и все нормально.
Сталкивались ли вы с таким? Каким образом закидываются файлы в кеш у вас?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы