ПРОЕКТЫ 


  АРХИВ 


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]

[apache-talk] =?koi8-r?Q?Re:_=5Bapache-talk=5D_Re:_=5Bapache-talk=5D_=E5=DD=C5_?==?koi8-r?Q?=CF_mod=5Faccel?=



Привет еще раз всем!

В догонку к предыдущему своему письму скажу нужную вещь :)

Если на бекенде стоит mod_perl, то можно легко сделать прозрачным работу
mod_access на фронтеде, чтобы тот видел IP клиента, а не фронтенда, а также
чтобы все CGI скрипты, использующие real IP & X-Forwarded-For на бекенде
работали так, как если бы работали без аксселератора. Очень важная вещь.

На фронтенде загружается такая функция:

package Common::ModAccel;

use Apache::Constants ();
sub handler ($)
{
 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);
    }

    return Apache::Constants::OK;
}

1;

************
А в бекенде пишется для каждого виртуала, где используется mod_access или
CGI скрипты:

PerlPostReadRequestHandler Common::ModAccel

И наступает счастье :)

Алексей

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