Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

Re: [apache-talk] Re: [apache-talk] Предложение - mod_acce l и backend с проверкой на IP доступ



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@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.