Это в первую очередь касается PHP проектов.
Делаем две вещи. Первое - для reverse proxy (если используется) у nginx дописываем в раздел следующее:
server {
...
location / {
...
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}
...
}
И рестартим nginx.
После этого у нас для переменной $_SERVER['HTTP_X_REAL_IP']
будет правильный IP-адрес клиента, а для $_SERVER['REMOTE_ADDR']
, скорее всего, останется неправильной.
Второе, что делаем - надо прокинуть правильную переменную в fastcgi_param
. Идем во внутренний nginx и исправляем конфиг:
server {
...
location ~ \.php$ {
...
fastcgi_param REMOTE_ADDR $http_x_real_ip;
...
}
...
}