Apache mit http/2 auf Ubuntu Server 18.04

Durch die Verwendung von HTTP/2 wird die Verbindung bei SSL/TSL Verbindungen stark beschleudingt. Wir müssen den Apache2 für die Verwendung von HTTP/2 umstellen.

Hinweis: Das Modul mod_php verwendet das Prozessmodul mpm_prefork. Um das Protokoll HTTP/2 zu verwenden, müssen wir auf das Prozessmodul mpm_event mit FastCGI umstellen.

Die Installation von Apache2 und PHP7.2 erfolgt unter Ubuntu 18.04 wie folgt.

sudo apt install apache2 php7.2

Nach der Installation läuft der Apache mit Prefork als Prozessmodul. Für HTTP/2 brauchen wir das Prozessmodul Event.

Zuerst deaktivieren wir MPM Prefork und das Modul von PHP.

sudo a2dismod php7.2
sudo a2dismod mpm_prefork

Jetzt aktivieren das MPM Event Prozessmodul mit FastCGI.

sudo a2enmod mpm_event proxy_fcgi setenvif

Wir möchten PHP mit FastCGI verwenden und installier es jetzt.

sudo apt install php7.2-fpm
sudo a2enconf php7.2-fpm

PHP läuft als extra Dienst, welche wir aktivieren und starten.

sudo systemctl start php7.2-fpm
sudo systemctl enable php7.2-fpm

Nach dem Neustart von Apache sollte PHP wieder laufen.

sudo systemctl restart apache2

Für HTTP/2 aktivieren wir das Modul.

sudo a2enmod http2

Damit unsere Webseite das Protokoll HTTP/2 verwendet, müssen wir es in der Konfiguration hinterlegen.

sudo vim /etc/apache2/sites-enabled/your-host-ssl.conf

<VirtualHost *:443>
 Protocols h2 http/1.1
 SSLEngine On
 ...

Nach einem Neustart von Apache sollte das Protokoll HTTP/2 funktionieren.

sudo systemctl restart apache2

Den Funktionstest kann man mit dem Curl Tool durchführen. Hier am Beispiel von Google.

curl -k -v --http2 https://www.google.com/

Sollte es zu Problemen mit der Anzahl der Theads kommen, kann man die Anzahl begrenzen.

sudo vim /etc/apache2/mods-enabled/http2.load

H2MinWorkers 1
H2MaxWorkers 1

Das Protokoll HTTP/2 ermöglich auch das Vorrausladen (Preload) von Inhalten. Hier ein Beispiel für WordPress als Header.

Header add Link "</wp-content/themes/twentyseventeen/style.css>;rel=preload"
Header add Link "</wp-includes/js/jquery/jquery.js>;rel=preload"
Header add Link "</wp-includes/js/jquery/jquery-migrate.min.js>;rel=preload"
Header add Link "</wp-includes/js/wp-embed.min.js>;rel=preload"

Check_MK Raw Server Edition installation

Diese Anleitung beschreibt die Installation von Check_MK Raw Server Version 1.2.8 auf Ubuntu Server 16.04 LTE.

Die Installation von Ubuntu Server 16.04 wird einfach mit Standardvorgaben installiert.

Zusätzlich installieren wird ein extra Tool, welcher alle Abhängigkeiten zu Check_mk installiert.

sudo apt-get install gdebi-core

Auf der Download Seite von Check_mk finden wir die Version 1.2.8 Raw, welche 100% kostenlos ist.

Wir laden die 64bit Version für Ubuntu 16.04 runter.

wget https://mathias-kettner.de/support/1.2.8p18/check-mk-raw-1.2.8p18_0.xenial_amd64.deb

Jetzt können wir Check_mk mit allen Abhängigkeiten installieren.

sudo gdebi check-mk-raw-1.2.8p18_0.xenial_amd64.deb

Check_mk verwendet den Apache mit mod_proxy, welches aktiviert werden sollte.

sudo a2enmod proxy_http

Nach einem Neustart ist die Installation schon fast abgeschlossen.

sudo service apache2 restart

Wir können die installierte Version ausgeben.

omd version

Check_mk bietet die Möglichkeit unterschiedliche Seiten gleichzeitig zu betreiben. Wir erstellen eine Beispielseite „mysite“.

sudo omd create mysite
sudo omd start mysite

Jetzt kann man die Seite im Browser erreichen. http://HOSTNAME/mysite/ Die Zugangsdaten wurden bei der Erstellung angezeigt oder sind fest voreingestellt. Das Login lautet „omdadmin“ und das Password ist „omd“.

Sollte man die Zugangsdaten vergessen haben, kann man das Passwort zu jeder Zeit ändern.

sudo htpasswd /omd/sites/mysite/etc/htpasswd cmkadmin

Ein Update auf eine neue Check_mk Version ist immer möglich. Das Versionsupdate wird in Schritten durchgeführt.

Eigene Ubuntu / Debian – Pakete erstellen

1. Paketverzeichnis erstellen

mkdir -p /tmp/myproject/DEBIAN/

1.1. HTML (Test) Seite erstellen

cd /tmp/myproject/
mkdir -p ./var/www/
echo "Test" > ./var/www/test.html

2. Kontrolldatei erstellen

cd /tmp/myproject/
vim ./DEBIAN/control

Package: myserver
Version: 0.0.1
Section: server
Priority: optional
Architecture: all
Essential: no
Installed-Size: 1024
Maintainer: User [snap.in@gmail.com]
Description: Statische Seite für den Webserver

2.1. Post-Install und Pre-Uninstall

cd /tmp/myproject/
echo "service apache2 restart" > ./DEBIAN/postinst
chmod +x ./DEBIAN/postinst

3. DEB Packet erstellen

cd /tmp/
dpkg-deb --build myproject

3.1. Debian Packet ansehen

dpkg-deb --contents myproject.deb

3.2. Debian Packet installieren

sudo dpkg -i myproject.deb

3.3. Debian Packet Auflisten

sudo dpkg --list |grep myproject

3.4. Debian Packet de-installieren

sudo dpkg --remove myproject