2017.06

Virtuelle Hostnamen

Einbindung virtueller Host-Namen mit Hilfe des Apache-Web-Servers

Standardmäßig ist der Apache2 in den Installations-CDs aller gängigen Linux-Distributionen und in MacOS enthalten. Für Windows muss ein gesonderter Download erfolgen. Der Quellcode des Apache2 liegt auf http://httpd.apache.org für ein Download bereit. Die folgende Beschreibung bezieht sich auf die Apache-Version 2.4.x. Die weitere Beschreibung bezieht sich hinsichtlich der Pfade auf ein UNIX/MacOS-System, für Windows sind die dazu korrespondierenden Pfade zu nutzen.

Einbindung des Proxy-Modules

Die Einbindung des Proxy-Modules ist relativ einfach zu bewerkstelligen.

Für SuSE: in der Datei /etc/sysconfig/apache2 sind in der Zeile der Variable APACHE_MODULES die Module proxy,proxy_http,proxy_connect hinzuzufügen. Nach der Änderung ist der Neustart des Apache-Servers erforderlich.

Die Verbindung von einer Servlet-Engine und Apache2

Die Verbindung zwischen dem Apache2 und der Servlet-Engine wird in den Konfigurationsfiles /etc/apache2/httpd.conf und /etc/apache2/http-vhosts.conf konfiguriert.

In der Datei /etc/apache2/httpd.conf ist die Include-Anweisung für das Lesen der Zusatzkonfiguration http-vhosts.conf zu aktivieren. Anschließend wird der eigentliche virtuelle Host in dieser Datei definiert. Dabei sind natürlich die Pfade zu den einzelnen Verzeichnissen entsprechend den aktuellen Gegebenheiten anzupassen.

<VirtualHost {www.myaddress.net:80}>

  #  General setup for the virtual host
  DocumentRoot "{path_to_my_web_root}"
  ServerName {my_server_name}
  ServerAdmin {user}@{my_server_name}
  ErrorLog /var/log/apache2/{app_name}-error_log
  CustomLog /var/log/apache2/{app_name}-access_log common
  TransferLog /var/log/apache2/access_log

  <Directory "{path_to_my_web_root}" >
    Options Indexes FollowSymLinks
    DirectoryIndex
    Require all granted
  </Directory>

  <Location />
    ProxyPass ajp://localhost:{app_port}/
    ProxyPassReverse ajp://localhost:{app_port}/
    Require all granted
  </Location>

  <Location /ws/>
    ProxyPass ws://localhost:{app_ws_port}/ws/
    Require ip xx.xx.xx.xx/32
    ...
  </Location>

</VirtualHost>

Nach dieser Änderung ist zuerst die Servlet-Engine zu starten. Anschließend kann der Apache-Server neu gestartet werden.

 Jens Kupferschmidt - 2018-01-03