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, 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.

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


b.r.,
[IAB22-RIPE]   -= Ilya Basalaev a.k.a. Scarab. =-   Phone: [+7-3832-239288]
Novosibirsk State Regional Scientific Library, Senior system administrator.

=============================================================================
=               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.