Nginx-konfigurationsgenerator
Att skriva Nginx-konfiguration från grunden innebär att du måste minnas varje rad proxy_set_header, varje MIME-typ som gzip ska komprimera och skillnaden mellan try_files $uri/ /index.php?$args och den variant som i tysthet förstör routningen. Generatorn frågar efter domän, upstream, PHP-hanterare och sökvägar till SSL-filerna, och skriver sedan ut ett server block med rimliga standardvärden för TLS, HTTP/2, cachning av statiska filer och komprimering.
Så skapar du ditt server block
-
1
Välj en förinställning
Statisk webbplats, PHP-FPM (Laravel, WordPress), omvänd proxy för Node.js eller en ren 301-omdirigering.
-
2
Ange domänen
Ta med hela listan med server_name, vanligtvis både varianten med www och den utan.
-
3
Fyll i SSL-uppgifterna
Peka ut dina fullchain- och privkey-filer, eller hoppa över steget om du bara kör HTTP.
-
4
Justera upstream
Port, sökväg till socket eller backend-URL för fall med proxy_pass.
-
5
Kopiera och driftsätt
Lägg resultatet i /etc/nginx/sites-available, kör nginx -t och ladda om Nginx.
Så ser ett bra server block ut
En modern virtuell värd i Nginx består oftast av de här delarna:
| Del | Uppgift |
|---|---|
listen 443 ssl http2 |
Tar emot HTTPS med HTTP/2 påslaget |
ssl_certificate + ssl_certificate_key |
Pekar ut TLS-certifikatet och den privata nyckeln |
ssl_protocols TLSv1.2 TLSv1.3 |
Rensar bort gamla TLS-versioner |
gzip on + typlista |
Komprimerar text/HTML/JSON/JS/CSS i farten |
expires-headers för statiska filer |
Minskar antalet upprepade anrop från återkommande besökare |
try_files |
Skickar vidare till en frontkontroller (PHP, Laravel med flera) |
| HSTS + säkerhetsheaders | Tvingar webbläsaren att hålla sig till TLS |
Grunderna i omvänd proxy
För appar i Node.js, Python och Ruby som körs bakom Nginx:
location / {
proxy_pass http://127.0.0.1:3000;
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";
}
Att glömma X-Forwarded-For är det klassiska sättet att tappa besökarnas verkliga IP-adresser i applikationsloggarna.
Vanliga misstag
- Ingen reserv för server_name. Om inget namn matchar använder Nginx det första server-blocket som standard. Lägg till ett
server_name _-block som fångar allt och svarar med 444, så undviker du attacker via Host-headern. - Fel ordning på certifikaten. Filen
ssl_certificatemåste innehålla hela kedjan (fullchain: servercertifikatet plus mellanliggande certifikat), inte bara servercertifikatet. - Alltför ivrig cachning. Att skicka
expires 1yför/index.htmlgör att kommande driftsättningar aldrig slår igenom. Versionshantera URL:erna till de statiska filerna i stället. - Omladdning utan test. Kör alltid
nginx -tföresystemctl reload nginx: ett enda syntaxfel tar ner hela webbplatsen.
Vanliga frågor
HTTP/2 är stabilt och stöds brett i Nginx 1.25 och senare. HTTP/3 (QUIC) finns i samma versioner men är fortfarande experimentellt. För en produktionskonfiguration i dag: slå på HTTP/2 och lägg vid behov till HTTP/3 med direktiven http3 och quic.
Konventionen är /etc/ssl/certs/ för publika kedjor och /etc/ssl/private/ för privata nycklar. Let’s Encrypt lägger allt under /etc/letsencrypt/live/domain/. Följ den sökväg som ditt förnyelseverktyg förväntar sig.
Ja, för de flesta webbplatser. Lägg till ett separat server block på port 80 som svarar med 301 https://$host$request_uri. Tillsammans med HSTS används HTTP-blocket knappt alls efter den första förfrågan.
Kör sudo nginx -t för att tolka konfigurationen utan att ladda om den. Om det står “syntax is ok” och “test is successful” laddar du om med sudo systemctl reload nginx. Använd aldrig restart i produktion: en omladdning byter konfiguration utan avbrott i trafiken.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
E-postvalidator
Validera en e-postadress: RFC 5322-syntaxkontroll, live-slagning av MX-poster samt detaljer om lokal del, domän och längd. Ingen e-post skickas.
EditorConfig-generator
Generera en .editorconfig-fil med dina regler för indragsstil och -storlek, radslut, teckenuppsättning och blanksteg för enhetlig formatering i alla IDE:er och editorer.
HTML-formaterare
Formatera HTML lokalt i webbläsaren med indrag på två eller fyra blanksteg. HTML laddas inte upp eller valideras.
Verktyget finns på andra språk
- Trình tạo cấu hình Nginx [VI]
- Nginx Konfigurationsgenerator [DE]
- Generador de Configuración de Nginx [ES]
- ตัวสร้างไฟล์ config ของ Nginx [TH]
- مولّد إعدادات Nginx [AR]
- Nginx 설정 생성기 [KO]
- Générateur de configuration Nginx [FR]
- Generator Konfigurasi Nginx [ID]
- Nginx-configuratiegenerator [NL]
- Generator konfiguracji Nginx [PL]
- Nginx 設定ジェネレーター [JA]
- Gerador de Configuração Nginx [PT]
- Nginx Config Generator [EN]
- Generatore di Configurazione Nginx [IT]
- Генератор конфигураций Nginx [RU]
- Nginx Yapılandırma Üreteci [TR]
- Nginx 配置生成器 [ZH]