Re: Запутался с SERVER_ADDR

Denis F. Latypoff latypoff на yandex.ru
Ср Ноя 9 23:28:13 UTC 2011


10.11.2011, 06:11, "Роман" <n.g.i.n.x.e.r at gmail.com>:
> есть 1 сервер балансировщик и 2 сервера обработчика
>
> на балансировщике прописано
>
> upstream backend1 {
>         server 127.0.0.1:81;
> }
>
> upstream backend2 {
>         server 127.0.0.2:81;
> }
>
> и в location соответственно
>
> proxy_pass      http://backend1/;
> proxy_redirect  off;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Server-IP $server_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>
> в апаче прописано
>
> RPAFenable On
> RPAFsethostname On

здесь лучше X-Real-IP, потому что в $proxy_add_x_forwarded_for могут
быть несколько адресов, через запятую, а адрес клиента должен быть
один.

- RPAFheader X-Forwarded-For
+ RPAFheader X-Real-IP

> RPAFproxy_ips 127.0.0.1 127.0.0.2
>
> Суть проблемы в том, что в апач отдает SERVER_ADDR 127.0.0.1 и 127.0.0.2
> HTTP_X_SERVER_IP нормальный
>
> Вопрос, как отдать правильный SERVER_ADDR?

Никак. SERVER_ADDR - это адрес на который биндится апач. Его нельзя подменить
в зависимости от запроса. А в чем проблема, почему не юзать HTTP_X_SERVER_IP?

-- 
br, Denis F. Latypoff.



Подробная информация о списке рассылки nginx-ru