Apache2 Kit

Aus Xinux Wiki
Version vom 23. März 2025, 15:38 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Apache2 Workshop – Kompaktkurs (1 Tag) = == Vorbereitung == '''Installation Apache2 & OpenSSL''' *apt install -y apache2 openssl '''Module aktivieren'''…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Apache2 Workshop – Kompaktkurs (1 Tag)

Vorbereitung

Installation Apache2 & OpenSSL

  • apt install -y apache2 openssl

Module aktivieren

  • a2enmod ssl
  • a2enmod rewrite
  • a2enmod headers
  • a2enmod proxy
  • a2enmod proxy_http
  • a2enmod proxy_wstunnel
  • systemctl reload apache2

Zertifikate erzeugen

Self-Signed CA und Zertifikate

  • mkdir -p /etc/apache2/ssl
  • openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -subj "/CN=server.it1XX.int"

Virtuelle Hosts mit HTTPS

Standardkonfiguration für HTTPS Erstelle Datei: */etc/apache2/sites-available/server.conf*

<VirtualHost *:443>
    ServerName server.it1XX.int
    DocumentRoot /var/www/server

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /etc/apache2/ssl/server.key

    <Directory /var/www/server>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/server_error.log
    CustomLog ${APACHE_LOG_DIR}/server_access.log combined
</VirtualHost>

Weitere Seiten Dupliziere den Block für:

  • docker.it1XX.int → /var/www/docker
  • gelb.it1XX.int → /var/www/gelb
  • blau.it1XX.int → /var/www/blau

Jeweils mit eigenem Logfile und DocumentRoot

Aktivieren

  • a2ensite server.conf
  • a2ensite docker.conf
  • a2ensite gelb.conf
  • a2ensite blau.conf
  • systemctl reload apache2

HTTP auf HTTPS umleiten

Erstelle Datei: */etc/apache2/sites-available/redirect.conf*

<VirtualHost *:80>
    ServerName server.it1XX.int
    Redirect permanent / https://server.it1XX.int/
</VirtualHost>

Dupliziere und passe für alle vier Domains an. Dann:

  • a2ensite redirect.conf (und weitere)
  • systemctl reload apache2

Optionen testen

Ändere in einem <Directory>:

Options -Indexes +FollowSymLinks

Rufe eine Seite ohne index.html auf – Verzeichnis darf nun nicht mehr angezeigt werden.

Zugriff beschränken (IP)

<Directory /var/www/gelb>
    Require ip 10.0.0.0/8
</Directory>

Logging kontrollieren

  • tail -f /var/log/apache2/server_access.log
  • tail -f /var/log/apache2/server_error.log
  • journalctl -fu apache2

Reverse Proxy Beispiel

Websocket und Webapp auf Port 3000

<VirtualHost *:443>
    ServerName docker.it1XX.int

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /etc/apache2/ssl/server.key

    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:3000/
    ProxyPassReverse / http://127.0.0.1:3000/

    ProxyPass /socket ws://127.0.0.1:3000/socket
    ProxyPassReverse /socket ws://127.0.0.1:3000/socket
</VirtualHost>

Kontrolle & Status

  • apachectl configtest
  • systemctl restart apache2
  • ss -lntp | grep apache2
  • apachectl status (mod_status aktivieren falls gewünscht)

Testinhalte bereitstellen

  • mkdir -p /var/www/server
  • echo "Hallo von server.it1XX.int" > /var/www/server/index.html
  • usw. für docker, gelb, blau

Fazit

Dieser 1-Tages-Kurs liefert:

  • Apache2 mit SSL-Verschlüsselung
  • Umleitung HTTP → HTTPS
  • Zugriffskontrolle, Logging, Optionen
  • Name-based VirtualHosts
  • Reverse Proxy mit Websockets

PHP, MariaDB & Dynamic Content werden in einem Folgekurs behandelt.