
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
site1
Ordner hostet eine Website, die ich möchte die Webanwendung Dienste in und Ordner site1domain.com
gehostet, um sie zu zeigen, wieserv1
serv2
service1.site1domain.com
service2.site1domain.com
Also habe ich versucht, den virtuellen Host in site1domain.conf
der 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 durchProxyPass
UndProxyPassReverse
Richtlinien, 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.