Apache stürzt ab, wenn ich versuche, ProxyPass auf localhost zu verwenden, um verschiedene Dienste als Subdomain verfügbar zu machen

Apache stürzt ab, wenn ich versuche, ProxyPass auf localhost zu verwenden, um verschiedene Dienste als Subdomain verfügbar zu machen

Ich habe die folgende Verzeichnisstruktur für mehrere Websites und Dienste

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

site1Ordner hostet eine Website, die ich möchte die Webanwendung Dienste in und Ordner site1domain.comgehostet, um sie zu zeigen, wieserv1serv2

service1.site1domain.com
service2.site1domain.com

Also habe ich versucht, den virtuellen Host in site1domain.confder Datei auf diese Weise zu konfigurieren

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

Aber die mit Diensten verbundenen Codeblöcke des virtuellen Hosts führen zu einem Absturz des Servers: Beenden mit Fehlercode 1.

Kann mir jemand helfen, die richtige Konfiguration zu verstehen?

Antwort1

Wie wäre es einfach mit:

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

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

Kein Mod_Proxy erforderlich.

Antwort2

Der Fehler wird verursacht durchProxyPassUndProxyPassReverseRichtlinien, die nicht dieplanenTeil der URL. Die korrekte Syntax wäre beispielsweise

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

Andrew hat jedoch Recht,Reverseproxyist für diesen Anwendungsfall weder erforderlich noch die beste Technologie.

verwandte Informationen