Reverse-Proxy-HTTPS
Anpassbare Beispiele für Caddy, Nginx und Traefik, sowohl innerhalb als auch außerhalb von Docker.
Wählen Sie das Beispiel, das zur Position des Proxys passt. Der Name nasdash funktioniert nur, wenn beide Container dasselbe Docker-Netzwerk teilen. Ein auf dem Host installierter Proxy verwendet in der Regel 127.0.0.1:2504.
Caddy auf dem Host installiert
Veröffentlichen Sie NasDash nur auf der Loopback-Schnittstelle:
services:
nasdash:
ports:
- "127.0.0.1:2504:2504"Dann in Caddyfile:
nasdash.example.com {
encode zstd gzip
reverse_proxy 127.0.0.1:2504
}Caddy erhält das Zertifikat, wenn der öffentliche DNS auf den Server zeigt und die für die Herausforderung erforderlichen Ports zugänglich sind.
Nginx auf dem Host installiert
server {
listen 443 ssl http2;
server_name nasdash.example.com;
ssl_certificate /etc/letsencrypt/live/nasdash.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/nasdash.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:2504;
proxy_http_version 1.1;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Die Zertifikatsverwaltung wird nicht von NasDash übernommen. Testen Sie die Nginx-Konfiguration, bevor Sie sie neu laden.
Caddy im selben Compose
services:
nasdash:
image: ghcr.io/lucas-lepajollec/nasdash:latest
expose:
- "2504"
networks: [web]
caddy:
image: caddy:2-alpine
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
networks: [web]
networks:
web:
volumes:
caddy-data:
caddy-config:nasdash.example.com {
reverse_proxy nasdash:2504
}Traefik im selben Compose
Das Beispiel geht davon aus, dass ein externes Netzwerk proxy, das bereits von Traefik verwendet wird, sowie ein Resolver mit dem Namen letsencrypt vorhanden sind:
services:
nasdash:
image: ghcr.io/lucas-lepajollec/nasdash:latest
networks: [proxy]
labels:
- "traefik.enable=true"
- "traefik.http.routers.nasdash.rule=Host(`nasdash.example.com`)"
- "traefik.http.routers.nasdash.entrypoints=websecure"
- "traefik.http.routers.nasdash.tls=true"
- "traefik.http.routers.nasdash.tls.certresolver=letsencrypt"
- "traefik.http.services.nasdash.loadbalancer.server.port=2504"
networks:
proxy:
external: truePrüfungen nach der Veröffentlichung
curl -I https://nasdash.example.com/api/healthPrüfen Sie außerdem Anmeldung, Abmeldung, Service-Links, das Laden von Widgets und das Fehlen von gemischtem Inhalt. Fügen Sie NasDash-Geheimnisse niemals zu den Proxy-Labels hinzu, wenn deren Inspektion für andere Benutzer zugänglich ist.