Apache аварийно завершает работу, если я пытаюсь использовать ProxyPass на локальном хосте для предоставления различных сервисов в качестве поддомена

У меня есть следующая структура каталогов для нескольких веб-сайтов и служб

/var/www/html/site1
/var/www/html/site2
/var/www/html/site3
/var/www/html/serv1
/var/www/html/serv2

site1 папка содержит веб-сайт site1domain.com I хотите открыть службы webapp, размещенные в папках serv1 и serv2 , чтобы показать их как

service1.site1domain.com
service2.site1domain.com

Итак, я попытался настроить виртуальный хост в site1domain.conf таким образом

<VirtualHost *:80>
    ServerName site1domain.com
    ServerAlias www.site1domain.com
    DocumentRoot /var/www/html/site1
    <Directory /var/www/html/site1>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName service1.site1domain.com
    ProxyPreserveHost On
    ProxyRequest Off
    ProxyPass        "/" "localhost/serv1"
    ProxyPassReverse "/" "localhost/serv1"
</VirtualHost>

<VirtualHost *:80>
     ServerName service2.site1domain.com
     ProxyPreserveHost On
     ProxyRequest Off
     ProxyPass        "/" "localhost/serv2"
     ProxyPassReverse "/" "localhost/serv2"
</VirtualHost>

Но блоки кода виртуального хоста, связанные со службами, вызывают сбой сервера: выход с кодом ошибки 1.

Может ли кто-нибудь помочь мне понять, как их правильно настроить?

0
задан 1 December 2020 в 18:59
2 ответа

Как насчет того, чтобы:

<VirtualHost *:80>
    ServerName service1.site1domain.com
    DocumentRoot /var/www/html/serv1
</VirtualHost>

<VirtualHost *:80>
    ServerName service2.site1domain.com
    DocumentRoot /var/www/html/serv2
</VirtualHost>

Mod_proxy не нужен.

1
ответ дан 4 January 2021 в 09:24

Ошибка вызвана вашими директивами ProxyPass и ProxyPassReverse , не имеющими части URL-адреса scheme . Правильный синтаксис будет, например,

ProxyPass "/" "http://localhost/serv1" 
ProxyPassReverse "/" "http://localhost/serv1"

. Однако Эндрю прав в том, что обратный прокси не требуется и не является лучшей технологией для этого варианта использования.

1
ответ дан 4 January 2021 в 09:24

Теги

Похожие вопросы