1. Mit deinem Server verbinden
ssh root@DEINE_SERVER_IP
Oder verwende das Web-Terminal im Sitequest-Dashboard.
2. Nginx installieren
apt update
apt install -y nginx
Prüfe, ob Nginx läuft:
systemctl status nginx
Rufe http://DEINE_SERVER_IP im Browser auf — du solltest die Nginx-Willkommensseite sehen.
3. Firewall-Ports öffnen
Wenn du die Sitequest-Firewall nutzt, stelle sicher, dass die Ports 80 (HTTP) und 443 (HTTPS) offen sind.
Mit ufw:
ufw allow 'Nginx Full'
4. Dateistruktur verstehen
| Pfad |
Zweck |
/etc/nginx/nginx.conf |
Hauptkonfigurationsdatei |
/etc/nginx/sites-available/ |
Virtual-Host-Konfigurationsdateien |
/etc/nginx/sites-enabled/ |
Symlinks zu aktiven Konfigurationen |
/var/www/ |
Standard-Web-Root |
/var/log/nginx/ |
Zugriffs- und Fehlerprotokolle |
5. Virtual Host erstellen
Erstelle ein Verzeichnis für deine Website:
mkdir -p /var/www/example.com/html
chown -R www-data:www-data /var/www/example.com
Lege eine Testseite an:
echo '<h1>Hallo von example.com</h1>' > /var/www/example.com/html/index.html
Erstelle die Server-Block-Konfiguration:
nano /etc/nginx/sites-available/example.com
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Aktiviere die Website und teste die Konfiguration:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
6. Reverse Proxy einrichten
Um Datenverkehr an eine Anwendung auf localhost:3000 weiterzuleiten:
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Praktisch, wenn du Node.js-, Python- oder Docker-Anwendungen hinter Nginx betreibst.
7. Gzip-Komprimierung aktivieren
Füge Folgendes im http-Block in /etc/nginx/nginx.conf hinzu:
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript;
Lade Nginx nach den Änderungen neu:
systemctl reload nginx
8. Grundlegende Sicherheits-Header
Füge diese Header in deinen server-Block ein:
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
9. (Optional) Brotli-Komprimierung aktivieren
Brotli bietet bessere Komprimierungsraten als Gzip, vor allem bei textbasierten Dateien. Unter Ubuntu 22.04+ kannst du das dynamische Modul installieren:
apt install -y libnginx-mod-brotli
Füge dann Folgendes im http-Block in /etc/nginx/nginx.conf hinzu:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/json application/javascript text/xml application/xml text/javascript image/svg+xml;
Nginx neu laden:
systemctl reload nginx
Brotli wird nur über HTTPS verwendet. Browser fallen auf Gzip zurück, wenn Brotli nicht verfügbar ist — lass also beides aktiv.
10. (Optional) HTTP/3 aktivieren
HTTP/3 nutzt QUIC (UDP) für schnellere Verbindungen, besonders in mobilen Netzen. Du brauchst Nginx 1.25.0+ (Ubuntu 24.04 liefert es mit, für ältere Versionen das offizielle Nginx-Repo verwenden).
Prüfe deine Version:
nginx -v
Erweitere deinen SSL-Server-Block um HTTP/3-Listener:
server {
listen 443 ssl;
listen [::]:443 ssl;
listen 443 quic;
listen [::]:443 quic;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
add_header Alt-Svc 'h3=":443"; ma=86400' always;
# ... restliche Konfiguration
}
Stelle sicher, dass UDP-Port 443 in deiner Sitequest-Firewall offen ist. HTTP/3-Support testen unter http3check.net.
Nächste Schritte