2019.06 2020.06

Apache Konfiguration

Der Abschnitt beschreibt Vorgehensweisen der Einbindung von Apache als virtuelle Server und die Integration von HTTP2 sowie HTTPS.

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

Standardmäßig ist der Apache2 in den Installations 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,proxy_ajp,proxy_wstunnel 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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<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.

Einbinden von HTTP2

Inzwischen werden ja immer mehr Anwendungen mit HTTP2 betrieben. Hier sind Hinweise für die Nutzung für MyCoRe-Applikationen.

Einbindung des http2-Modules

Die Einbindung des HTTP2-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 a2enmod,http2 hinzuzufügen. Nach der Änderung ist der Neustart des Apache-Servers erforderlich.

Mit dem Kommando apachectl -M | sort kann geprüft werden, welche Module geladen wurden.

Test

Für den Test ist die Installation eines Browswer-Plugin sinnvoll, welches anzeigt (blauer Blitz), ob HTTP2 Verwendung findet.