Bug 6437

Summary: mod_proxy in apache don't proxying to apache-mod_perl
Product: Sisyphus Reporter: Mike Lykov <combr>
Component: apache-mod_perlAssignee: Michael Shigorin <mike>
Status: CLOSED DUPLICATE QA Contact: qa-sisyphus
Severity: critical    
Priority: P2 CC: at, cas, crux, ender, iadzhubey, lakostis, ldv, mike, mithraen, qa_viy, rider, shaba, solo, viy
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
letter
none
Небольшая переделка стартовых скриптов. none

Description Mike Lykov 2005-04-08 15:02:36 MSD
Ситуация такая (мастер 2.4 в оригинале, но, думаю, с тех пор ничего не поменялось)
ставим apache, apache-mod_perl
запускаем httpd, httpd-perl
Все красиво запускается,  httpd-perl делается в режиме perlproxied и ожидает
запросов, перенправленных из apache на порту 8200.
Но вот только httpd, поскольку запускается первым, не знает о perlproxied не
знает и запускается в обычном режиме, поэтому кусок конфига 
<IfDefine PERLPROXIED>                                                         
                 
     <IfModule mod_proxy.c>                                                    
                  
         ProxyPass               /perl/ http://127.0.0.1:8200/                 
                  
         ProxyPassReverse        /perl/ http://127.0.0.1:8200/                 
                  
     </IfModule>  

в нем не работает, mod_proxy не включается и httpd-perl никаких запросов не
получает.

Выход: 

Быстрый (грязный ;) :
при наличие установленных apache и apache-mod_perl убрать из httpd.conf
упоминания о <IfDefine PERLPROXIED>   (всегда будет работать с mod_proxy)

концептуальный:
2. сконфигурировать все таким образом, чтобы при наличии apache  -
apache-mod_perl работал бы только с проксированными запросами с 127.0.0.1:8200,
а без apache вообще не ставился.

Так же прилагается письмо с подробнростями ;)
Comment 1 Mike Lykov 2005-04-08 15:05:40 MSD
Created attachment 800 [details]
letter

Письмо с предложением, как чинить и концептуальными изменениями (вероятно,
несколько сумбурное ;)
Comment 2 solo 2005-04-28 22:37:51 MSD
Created attachment 849 [details]
Небольшая переделка стартовых скриптов.

(In reply to comment #1)

 Работает для apache-1.3.33rusPL30.20-alt1.M24 +
apache-mod_perl-1.3.33rusPL30.20-alt1.M24 (Master 2.4 + backports) и для
apache-1.3.33rusPL30.20-alt2 + apache-mod_perl-1.3.33rusPL30.20-alt2
(Sisyphus).
Comment 3 Michael Shigorin 2005-06-24 18:00:23 MSD
так... с альсой раскидались, с xmms раскидались, пора апач чинить ;-)
Comment 4 Michael Shigorin 2005-06-24 18:04:57 MSD
Date: Fri, 24 Jun 2005 01:54:44 -0400
From: Ivan Adzhubey <iadzhubey rics bwh harvard edu>
To: ALT Linux Sisyphus discussion list <sisyphus@>
Subject: Re: [sisyphus] Re: apache-mod_perl broken?

Нет, просто из /etc/rc.d/init.d/httpd все хозяйство с определением переменной
PERLPROXIED было убрано, сознательно как я подозреваю. Остался, видимо просто
забыт, неработающий кусок в /etc/rc.d/init.d/httpd-perl, который к тому же
там в комментариях обозван грязным хаком. Это подталкивает к мысли, что
убрано было сознательно, хотя я и не имею понятия почему.
Comment 5 Ivan Adzhubey 2005-06-26 08:18:52 MSD
Прошу прощения за дезинформацию в моем предыдущем комменте, любезно 
скопированом сюда Michael Shigorin ;). На самом деле как раз 
в /etc/init.d/httpd-perl все работает как положено и переменная PERLPROXIED 
выставляется, если уже есть запущенный просто httpd. А вот в /etc/init.d/httpd 
эта переменная не выставляется, да и я ума не приложу как оно вообще могло 
работать? И работало ли когда-нибудь? Ведь когда запускается htpd (первым, 
приоритет 80) он ничего не знает о том будет ли запущен потом httpd-perl. Может 
всунуть туда чтение /etc/rc.d/* или просто вызов chkconfig на предмет проверки 
активированного сервиса httpd-perl в текущем уровне загрузки? 
Comment 6 Michael Shigorin 2005-06-27 13:54:08 MSD
Иван, Вы скажите, что было сделано, чтобы оно заработало локально.

Поскольку grep имеет мнение, что входимость PERLPROXIED в инитскриптах "до" и
"после" переезда схемы оных не менялась, соответственно сам бы не отламывал:

home:~/RPM/SOURCES> grep PERLPROXIED httpd*.init.*
httpd-perl.init.2_2:    DEFINE="-DPERLPROXIED"
httpd-perl.init.2_3:       DEFINE="-DPERLPROXIED"
httpd-perl.init.2_3:            echo "** apache-mod_perl is running in
PERLPROXIED mode"
httpd-perl.init.Master: DEFINE="-DPERLPROXIED"
httpd-perl.init.Sisyphus:       DEFINE="-DPERLPROXIED"
httpd-perl.init.Sisyphus:               echo "** apache-mod_perl is running in
PERLPROXIED mode"

(это небольшая свалка, в текущей сборке не Master/Sisyphus, а 2_2/2_3)
Comment 7 Michael Shigorin 2005-08-24 21:38:49 MSD
Я сейчас буду допинывать и вываливать 1.3.33-alt3.

С заинтересованных -- проверить, починил ли это (changelog там на три release,
увы, получился).  Если не починил или не понял рекомендаций, предложить или
ткнуть носом.

PS: можно и в #4994.

*** This bug has been marked as a duplicate of 4994 ***
Comment 8 Michael Shigorin 2005-08-24 21:43:35 MSD
И ещё вопрос -- использует ли кто-то apache-mod_perl без apache?
Comment 9 Michael Shigorin 2005-08-24 23:39:39 MSD
(In reply to comment #1)
> Письмо с предложением, как чинить и концептуальными изменениями (вероятно,
> несколько сумбурное ;)
Хорошее письмо, так и сделал :-)

Народ, я сейчас закину alt3 к себе -- проверите? (а также на его базе соберу
alt2.M24.1 для backports)
Comment 10 Denis Smirnov 2005-08-25 14:12:37 MSD
Если кто-то такой маньяк что использует, то пущай сам настраивает ручками.
Потому как в таких случаях reverse-proxy обязателен.

Comment 12 Michael Shigorin 2005-12-18 00:06:00 MSK
Никто не смотрел, как понимаю.

*sigh*
Comment 13 Ivan Adzhubey 2006-01-03 09:10:09 MSK
(In reply to comment #12) 
> Никто не смотрел, как понимаю. 
>  
> *sigh* 
 
Э-э, почему не смотрел? Смотрел - работает. Если chkconfig reset не забыть 
сделать конечно. Так когда работает - никто и не похвалит, известное дело. 
Спасибо ;-)