Вдруг так случилось и появилась необходимость организовать цепочку NGIXN -> NGINX ->APACHE, например если первый Nginx выступает как балансировщик нагрузки. При данной цепочке теряется реальный IP адрес пользователя. А если вы используете GEOIP то он вам нужен.
Есть простое решение используя дополнительную переменную:
Пример конфигурации первого NGINX в цепочке:
1 2 3 4 5 6 7 |
location / { proxy_pass http://IP:80; #IP-адрес:порт где стоит второй nginx proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header realip $remote_addr; # сохраним IP посетителя в переменную } |
Пример конфигурации второго NGINX:
1 2 3 4 5 6 7 |
location / { proxy_pass http://127.0.0.1:81; #IP-адрес:порт с apache proxy_set_header Host $http_host; proxy_set_header X-Real-IP $http_realip; proxy_set_header X-Forwarded-For $http_realip; proxy_set_header realip ''; # удалим переменную } |
Источник: https://www.poseti.net/articles/realnyij-ip-pri-dvojnom-proksirovanii
Leave a Reply