nginx, Двойное проксирование, реальный IP

27 июля, 2010

Порой бывает необходимо сделать цепочку nginx->nginx->apache. При такой структуре маршрутизации теряется реальный IP клиента(пользователя). Предлагаемое решение избавит от этой проблемы. Используйте дополнительную переменную для передачи реального IP.

Основной nginx (первичный):

location / {
proxy_pass http://IP:80; #адрес где стоит второй nginx
proxy_read_timeout 60;
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:

location / {
proxy_pass http://IP:81; #IP:порт с apache
proxy_read_timeout 60;
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 «»; # удалим переменную
}

Удачного дня.

4 комментария для “nginx, Двойное проксирование, реальный IP”


Оставить комментарий

© 2010 - 2024 Ядоблог. Ничего не защищено.
Powered by Лаборатория Яда. Написать Яду