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