Я заметил в наших журналах доступа, что иногда $http_x_forwarded_for
переменная не была установлена, вместо этого правильный IP-адрес - это тот, который установлен на $remote_addr
. Можно ли установить $http_x_forwarded_for
так как $remote_addr
, когда его иначе не существует?
В основном следующие псевдокод, в логике nginx:
if($http_x_forwarded_for == null) $http_x_forwarded_for = $remote_addr
Я основываю некоторые зоны ограничения требований на $http_x_forwarded_for
, поэтому я думаю, что эта проблема может быть причиной того, что она не всегда срабатывает.
Спасибо.
Рискну предположить, что у тебя есть ngx_http_realip_module включен, и не все IP-адреса ваших прокси указаны как доверенные.