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
|