Was dieser Builder dir gibt
Wenn du je eine leere `.conf` unter `/etc/nginx/sites-available/` aufgemacht hast und nicht wusstest, wo du anfangen sollst, ist dieses Tool fuer dich. Es schreibt den ganzen Server-Block fuer die fuenf Dinge, die Leute mit nginx tatsaechlich tun: eine statische Seite ausliefern, einen Reverse-Proxy vor eine App stellen, einen sauberen Redirect fahren, eine Subdomain hosten oder Traffic ueber viele Backends mit einem Load-Balancer verteilen.
Modus oben waehlen, Domain und Backend eingeben, die Schalter fuer SSL, gzip, WebSockets und Cloudflare flippen. Das rechte Panel zeigt den exakten Text, den du in nginx einfuegst, korrekt eingerueckt wie eine echte Config. Copy oder Download als `<deine-domain>.conf`.
Alles laeuft im Browser. Es werden keine Domains aufgeloest, keine Zertifikate ausgestellt, nichts hochgeladen. Der Output ist nackte nginx-Syntax, identisch zu dem, was du von Hand tippen wuerdest, wenn du jede Direktive auswendig haettest.
So benutzt du es
- Einen Modus oben waehlen: *Static site*, *Reverse proxy*, *Redirect*, *Subdomain* oder *Load balancer*. Jeder Modus zeigt nur die fuer ihn relevanten Felder.
- Deine Domains in server_name eintippen. Eine Domain pro Zeile. Die erste wird als Zertifikatsname genutzt.
- Den listen-Port waehlen. 80 fuer plain HTTP, 443 fuer HTTPS, 8080, wenn ein Upstream-Proxy oder Docker TLS macht.
- Add SSL block flippen, um Lets-Encrypt-Pfade zu verdrahten (`/etc/letsencrypt/live/<domain>/fullchain.pem`). Add HTTP to HTTPS redirect anlassen, damit plain-HTTP-Besucher mit `301` auf https geschickt werden.
- Bei Reverse proxy proxy_pass auf dein Backend setzen, z. B. `http://127.0.0.1:3000`. X-Forwarded--Header anlassen, damit deine App die echte Client-IP sieht.
- Bei Load balancer je eine `address:port` pro Zeile in *Backend servers* einfuegen und einen Algorithmus waehlen. upstream-Gruppen mit `least_conn` fuer langsame Apps, `ip_hash` fuer Sticky Sessions.
- Nutzt deine App WebSockets (Socket.IO, Phoenix Channels etc.), Add WebSocket Upgrade headers flippen. Steht Cloudflare vor nginx, Add Cloudflare real IP flippen, damit Logs den echten Client zeigen.
- Copy klicken, in `/etc/nginx/sites-available/<deine-datei>.conf` einfuegen, in `sites-enabled` symlinken, `sudo nginx -t` zur Syntaxvalidierung ausfuehren, dann `sudo systemctl reload nginx`.
Wann das nuetzlich ist
Sieben Situationen, in denen ein fertiger Server-Block viel Doku-Schielen spart:
- Du hast eine Node-, Python- oder Go-App auf einem VPS deployt und willst sie mit ordentlichem TLS-Cert auf Port 443. *Reverse proxy* waehlen, auf `http://127.0.0.1:3000` zeigen, SSL anschalten, fertig. Nginx terminiert TLS, deine App bleibt plain HTTP dahinter.
- Du hast eine Domain fuer eine statische Landingpage gekauft. *Static site* waehlen, root auf `/var/www/deine-seite` zeigen, und du bekommst einen funktionierenden Server-Block mit richtigen Index-Dateien und einem try_files-Fallback.
- Du migrierst eine alte Domain auf eine neue. *Redirect* waehlen, Ziel `https://new.example.de$request_uri`, Code `301`. Google aktualisiert den Index, Browser cachen den Redirect, deine alten Links funktionieren weiter.
- Du willst eine Subdomain fuer einen Blog. *Subdomain* waehlen, Praefix `blog`, Base `example.de`, und du bekommst einen kompletten `blog.example.de`-Server-Block. Unter genau diesem Dateinamen speichern, damit `sites-available/` aufgeraeumt bleibt.
- Deine App schafft die Last auf einer Box nicht. *Load balancer* waehlen, drei oder vier Backend-`address:port`-Zeilen einfuegen, `least_conn` waehlen, und nginx routet jeden Request an den unbeschaeftigtsten. Einen Server ergaenzen ist eine neue Zeile.
- Dein Realtime-Chat ist hinter nginx kaputt wegen WebSockets. *Add WebSocket Upgrade headers* flippen, nginx leitet `Upgrade` und `Connection` korrekt weiter, mit 24h-Read-Timeout, der lange Verbindungen ueberlebt.
- Du sitzt hinter Cloudflare und alle Logs sagen "172.x.x.x". *Add Cloudflare real IP* flippen, nginx rewritet `$remote_addr` aus dem `CF-Connecting-IP`-Header aus Cloudflare-Ranges. Rate-Limits, fail2ban und Audit-Logs funktionieren wieder.