Nginx Reverse Proxy mit SSL
Mehrere Webdienste über einen Nginx Reverse Proxy mit automatischen Let's Encrypt SSL-Zertifikaten absichern – komplett in Docker.
Voraussetzungen
- Linux Server (Ubuntu 22.04/24.04 empfohlen)
- Domain mit DNS A-Record auf die Server-IP
- Docker und Docker Compose installiert
Schritt 1: Docker installieren
# Docker installieren (offizielle Methode) curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER # Docker Compose Plugin prüfen docker compose version
Schritt 2: Projektstruktur anlegen
mkdir -p ~/reverse-proxy/{nginx/conf.d,certbot/{conf,www}}
cd ~/reverse-proxySchritt 3: Docker Compose erstellen
# docker-compose.yml
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
restart: unless-stopped
certbot:
image: certbot/certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h; done'"Schritt 4: Nginx Konfiguration
# nginx/conf.d/default.conf
server {
listen 80;
server_name deine-domain.de;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name deine-domain.de;
ssl_certificate /etc/letsencrypt/live/deine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/deine-domain.de/privkey.pem;
location / {
proxy_pass http://dein-dienst: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;
}
}Schritt 5: SSL-Zertifikat anfordern
# Erst Nginx ohne SSL starten (nur Port 80) docker compose up -d nginx # Zertifikat ausstellen docker compose run --rm certbot certonly \ --webroot -w /var/www/certbot \ -d deine-domain.de \ --email deine@email.de \ --agree-tos --no-eff-email # Nginx mit SSL neu starten docker compose restart nginx
Tipp: Mit einem Reverse Proxy kannst du beliebig viele Dienste auf einem Server betreiben – jeder mit eigenem SSL-Zertifikat. Ideal für KVM Server, auf denen du volle Kontrolle über Ports und Netzwerk hast.
Mehrere Projekte auf einem Server?
Unsere KVM Server bieten feste IPs und volle Root-Rechte – perfekt für Reverse-Proxy-Setups.
Server bestellen