Приложение PSGI с Apache2, использующее Plack::Handler::Apache2, приводит к 'not found'

Первый постер, долгое время скрывался здесь.

Я использую крошечное приложение PSGI в plackup, но я хотел бы переключиться на Apache2 для поддоменов. Я запускаю приложение с помощью "plackup /home/ath88/work/kolle/script/dir.psgi -port 80". Он отлично работает на платке. Приложение довольно простое и его можно найти по адресу https://github.com/ath88/Kolletilmelding/blob/master/script/dir.psgi

Но я хотел бы запустить Apache2 вместо plackup по понятным причинам. Для этого я хочу использовать Plack::Handler::Apache2. Мой VirtualHost выглядит следующим образом:

    <VirtualHost *:80>
      ServerName aths.dk
      ServerAdmin asbjoern@gmail.com
      <Location />
        SetHandler perl-script
        PerlResponseHandler Plack::Handler::Apache2
        PerlSetVar psgi_app /home/ath88/work/kolle/script/dir.psgi
      </Location>
    </VirtualHost>

Apache2 перезагружается нормально. Но когда я пытаюсь посетить aths.dk, я просто получаю 404 не найден. Каталог для приложения правильный, так как это приводит к внутренней ошибке 500. Глядя в apache2/error.log я получаю это: [Неактуально, см. Редактирование]

    [Wed Oct 05 21:32:16 2011] [notice] caught SIGTERM, shutting down
    [Wed Oct 05 21:32:17 2011] [notice] Apache/2.2.12 (Ubuntu) mod_perl/2.0.4 Perl/v5.10.0 configured -- resuming normal operations

Это происходит каждый раз, когда я перезагружаю Apache2.

Я потратил 4 часа, пытаясь отладить это. Я совершенно ошеломлен.

Редактировать: Оказывается, SIGTERM был от остановки Apache2 для перезапуска. Это не происходит, когда я начинаю это. Дурак я.

1 ответ

Возможно, ваша настройка выиграет от настройки обратного HTTP-прокси.

Вы можете запустить приложение Plack вручную и связать его с 127.0.0.1:9001 вместо 127.0.0.1:80, в этом случае вам нужен привилегированный пользователь (порт TCP ниже 1024).

Тогда конфигурация обратного HTTP-прокси, которая должна работать, может быть такой:

<VirtualHost *:80>
        ServerName aths.dk
        ServerAdmin asbjoern@gmail.com

        ErrorLog /var/log/apache2/aths.dk-error.log
        TransferLog /var/log/apache2/aths.dk.log
        DocumentRoot /var/www/aths.dk
        ProxyRequests Off

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPass / http://127.0.0.1:9001/
        ProxyPassReverse / http://127.0.0.1:9001/
</VirtualHost>
Другие вопросы по тегам