ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Определение IP



Здравствуйте, Евгений.

Вы писали 14 ноября 2012 г., 19:35:41:

> Здравствуйте.
> Скажите, как корректно определять ип при использовании связки nginx+php-fpm5 .
> А именно интересует, проталкивает ли энжиникс переменные
> $_SERVER['REMOTE_ADDR'];
> $_SERVER['HTTP_X_REAL_IP'];
> $_SERVER['HTTP_X_FORWARDED_FOR'];
> ?
> т.е такие переменные воопще могут существовать  ?

Nginx работает в соответствии с конфигурацией.  А она может говорить примерно 
так:

root@server:/etc/nginx/sites-available# cat default |grep -A 4 -B 1 fpm
        location ~ \.php$ {
               # With php5-fpm:
               fastcgi_pass unix:/var/run/php5-fpm.sock;
               fastcgi_index index.php;
               include fastcgi_params;
        }

root@server:/etc/nginx# cat fastcgi_params |grep REMOTE_ADDR
fastcgi_param   REMOTE_ADDR             $remote_addr;


Т.е. переменная REMOTE_ADDR передается как переменная протокола FastCGI, и 
должна быть принята
php-fpm.


> Сейчас я определяю так:
> function getip(){
>                 if(getenv("HTTP_CLIENT_IP"))
>                         $ip = getenv("HTTP_CLIENT_IP");
>                 elseif(getenv("HTTP_X_FORWARDED_FOR"))
>                         $ip = getenv("HTTP_X_FORWARDED_FOR");
>                 else
>                         $ip = getenv("REMOTE_ADDR");
>                 return $ip;
> }
> Может быть этот способ и не целесообразный для энжиникса вовсе. может
> он для апача только акутален ?

Способ, который берет переменные HTTP_CLIENT_IP и HTTP_X_FORWARDED_FOR вместо 
REMOTE_ADDR, а в
особенности так, как написано в приведенной вами функции - не актуален и 
нецелесообразен _нигде_,
т.к. позволяет подставлять произвольный IP-адрес в результат выполнения функции.
Подробности - в гугле.


-- 
С уважением,
 Pavel                          mailto:pavel2000@xxxxxx

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.