Bug 4994 - apache and apache-mod_perl in proxied mode dont work
: apache and apache-mod_perl in proxied mode dont work
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/apache)
: unstable
: all Linux
: P2 major
Assigned To:
:
:
:
:
: 987
  Show dependency tree
 
Reported: 2004-08-13 19:00 by
Modified: 2008-04-19 13:37 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-08-13 19:00:39
По умолчанию при установке apache и apache-mod_perl подразумевается что они
должны работать в через perlproxied. При попытке запроса скриптов из /perl/
выдается сообщение о не найденом пути. Лог apache об этом так же говорит. Лог
apache-mod_perl при этом чистый. 
Поглядев конфиг apache, был найден  следующий кусок:

<IfDefine PERLPROXIED>
    <IfModule mod_proxy.c>
        ProxyPass               /perl/ http://127.0.0.1:8200/
        ProxyPassReverse        /perl/ http://127.0.0.1:8200/
    </IfModule>

    # Protect security-sensitive locations of httpd-perl server
    <Location ~ ^/perl/(perl-status|server-status|server-info)>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1 localhost
        #Allow from your.trusted.host
    </Location>
</IfDefine>
из которого следует что для работоспособности связки apache и  apache-mod_perl
через proxied требуется запускать apache  с параметром -DPERLPROXIED
После указания этого параметра в /etc/init.d/httpd все замечательно начинает
работать.
------- Comment #1 From 2004-08-13 19:27:08 -------
maybe I'd add some /etc/sysconfig/httpd which would get sourced by
/etc/init.d/httpd so that local administrator could inject the parameters
without hacking and maintaining initscript.
------- Comment #2 From 2004-08-13 19:37:57 -------
scheduled for weekend
------- Comment #3 From 2004-08-16 13:23:42 -------
Проверка показала, что функционирование "не зависит от".

Возможно, я совсем тормоз, но трогать то, что works for me, перед релизом не
буду.  Давайте продолжим через пару недель, все равно apache-1.3 будет
капитально перековыриваться.
------- Comment #4 From 2004-08-17 08:00:07 -------
Ну давайте, только не забыть бы об этом. :)

------- Comment #5 From 2005-01-29 22:12:28 -------
Так... а багзилла-то помнит.

Можете описать на пальцах для тупых майнтейнеров (меня :), как проверить
работу/неработу?

Покамест включение -DPERLPROXIED и hello.pl в /var/www/perl привели к 502 Proxy
Error (при том, что на 127.0.0.1:8200 httpd-perl сидит, грабли с (98)Address
already in use: make_sock: could not bind to port 80 лежат отдельно -- timing
issue, что-то мне так кажется).

2 mithraen: тебе mod_perl ближе, мож починишь?

Пока для 1.3.33rusPL30.20-alt3 делаю включение /etc/sysconfig/httpd и httpd-perl
соответственно инитскриптами с передачей $ARGS.
------- Comment #6 From 2005-01-29 22:27:02 -------
> Можете описать на пальцах для тупых майнтейнеров (меня :), как проверить
> работу/неработу?
> 
> Покамест включение -DPERLPROXIED и hello.pl в /var/www/perl привели к 502 Proxy
> Error (при том, что на 127.0.0.1:8200 httpd-perl сидит, грабли с (98)Address
> already in use: make_sock: could not bind to port 80 лежат отдельно -- timing
> issue, что-то мне так кажется).
> 
> 2 mithraen: тебе mod_perl ближе, мож починишь?

Честно говоря читая ленту так и не понял -- в чём именно проблема?
Ну что it works for me, это понятно. У меня уже давно штатные инитскрипты не
работают. У меня апачем вообще daemontools занимается (в связи с monit пора бы
перейти не него).

Никаких "Address already in use" быть не должно, разве что если httpd-perl
пытается и на 80-м порту повеситься.

Что в логах в этот момент? И какое содержимое hello.pl?
------- Comment #7 From 2005-01-31 14:21:48 -------
Говорю же -- про :80 отдельная тема, мелкий хак в alt3 состоит в том, что
/etc/init.d/httpd-perl смотрит не на pidfile, а на lockfile.

В hello.pl:

#!/usr/bin/perl
print "<html><body>Hello world!</body></html>"

Речь не о том.

В /var/log/error_log попадалось такое:

[Sat Jan 29 20:56:16 2005] [error] [client a.b.c.d] (111)Connection refused:
proxy connect to 127.0.0.1 port 8200 failed

-- при этом netstat -pan | grep 8200 показывал пальцем на httpd-perl, а telnet
localhost 8200 к чему-то даже коннектился.

К тебе, собсно, вопрос не по тому, как в твоей конфигурации оно чудно работает,
а как бы сделать так, чтобы работало в той, которая в данный момент обязана
быть
в пакете. :)

[упс... забыл сказать Commit :]
------- Comment #8 From 2005-01-31 17:37:08 -------
А скрипт такой не будет работать :) Он будет Internal Server Error говорить.
Заголовки кто будет добавлять? ;-) mod_perl, как и CGI, требует всю работу
ручками делать. Или соответствующими модулями.

Я понял о чём ты. Я имею в виду "как я могу это воспроизвести?". В смысле на
каком срезе Сизифа, что выкачать? Ты имеешь в виду штатные установки?

Вот у меня под рукой есть машинка где пока нет апача. Что мне надо сделать
чтобы
воспроизвести глюку? 
------- Comment #9 From 2005-01-31 17:43:04 -------
Вот "как" -- лучше с tma@ выясните (как на меня -- попробуй поднять mod_perl со
штатными инитскриптами и прочим).

На текущем Sisyphus, по вкусу -- с apache из Daedalus (только там ещё кой-чего
может быть разломано, но лучше отталкиваться от него) ну или уже со всем из
ALM2.4, поскольку было бы неплохо сделать errata, раз у нас всё взорвано.
------- Comment #10 From 2005-08-24 21:28:14 -------
(In reply to comment #8)
> А скрипт такой не будет работать :) Он будет Internal Server Error говорить.
> Заголовки кто будет добавлять? ;-) mod_perl, как и CGI, требует всю работу
> ручками делать. Или соответствующими модулями.
Брось hello.pl для тупых. :)
------- Comment #11 From 2005-08-24 21:38:53 -------
*** Bug 6437 has been marked as a duplicate of this bug. ***
------- Comment #12 From 2005-08-24 22:25:21 -------
#6437 dup
------- Comment #13 From 2005-08-24 22:26:19 -------
Народ, как думаете, что лучше:

- стартовать httpd-perl первым и при наличии /usr/sbin/httpd считать его
запускающимся (вариант: +проверять chkconfig) => PERLPROXIED, или
- написать в README.ALT, что запуск mod_perl требует добавления
ARGS=-DPERLPROXIED в /etc/sysconfig/apache?

Я пока делаю первое без chkconfig (неохота на ночь глядя писать парсилку
`chkconfig --list httpd`, точно наклепу чего-нить не того).
------- Comment #15 From 2005-08-29 22:59:33 -------
По идее, fixed; фидбэка я не получил, человеку у нас на хостинге облом, заливаю
в Sisyphus и backports.
------- Comment #16 From 2005-09-02 19:03:47 -------
ещё немного подновил:

* Fri Sep 02 2005 Michael Shigorin <mike@altlinux.org>
1.3.33rusPL30.20-alt3%release_tag
- whoops, README.ALT wasn't getting packaged (updated too)
- altlinux-release build dependency appears illegal
  (long unneeded though)