ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


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


  ПРОГРАММЫ 



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














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

Re: [apache-talk] =?koi8-r?B?UmU6IFthcGFjaGUtdGFsa10g8NLFxMzP1sXOycUgLSBtb2RfYWNjZQ==?==?koi8-r?B?bCDJIGJhY2tlbmQg0yDQ0s/XxdLLz8ogzsEgSVAgxM/T1NXQ?=



On Wed, 13 Feb 2002, Ilya Basalaev wrote:

> On Wed, 13 Feb 2002, Alexey Zvyagin wrote:
> 
> > Привет всем!
> >
> > > mod_realip не подходит для mod_access. Для этого лучше взять
> > > http://develooper.com/code/mpaf/
> >
> > Спасибо!
> > Именно этот модуль и подсказал более элегантное решение для бекенда, на
> > котором установлен mod_perl
> >
> > use Apache::Constants ();
> > sub My::ProxyRemoteAddr ($) {
> > my $r = shift;
> >
> >     # we'll only look at the X-Forwarded-For header if the requests
> >     # comes from our proxy at localhost
> >     return Apache::Constants::OK unless ($r->connection->remote_ip eq
> > "127.0.0.1");
> >
> >     if (my ($ip) = $r->header_in('X-Real-IP') =~ /^(\d+\.\d+\.\d+\.\d+)$/o)
> > {
> >       $r->connection->remote_ip($ip);
> 
> Если я не ошибаюсь, то это решение некорректно.
> После пристального перечитывания документации по mod_realip, я
> действительно нашел там, что
> 
> ---
> Модуль изменяет IP адрес клиента в поле r->connection->remote_ip
> на адрес, заданный в заголовке "X-Real-IP" или на последний адрес,
> заданный в заголовке "X-Forwarded-For".
> 
> [...skipped...]
> 
> Нужно заметить, что эта замена никак не влияет на модули mod_access и
> mod_status, поскольку они используют поле r->connection->remote_addr.
> ---
> 
> Но тогда, видимо, его и нужно менять в Вашем модуле. А то, что меняется
> сейчас, с успехом может делать и mod_realip.

Дело в том, что

$r->connection->remote_ip($ip);

совсем не тоже самое, что

r->connection->remote_ip = ip;

хотя и похоже. mod_perl изменяет оба занчения.

> Кстати - я правильно понимаю, что модули на Си работают быстрее, чем
> перловые, или там какие-то хитрые механизмы по преобразованию перла в
> объектный код есть?

Быстрее.

Игорь Сысоев

=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.