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
Webpack-konfigurationsgenerator
Skapa en webpack.config.js för webpack 5 med vanlig JavaScript, React eller Vue: TypeScript, Babel, CSS eller Sass, bilder, HtmlWebpackPlugin, en utvecklingsserver och raden för npm install.
Protocol Buffers-avkodare
Avkoda Protobuf-byte lokalt från hex, Base64, Base64URL, text eller fil, granska fälttolkningar och exportera en privat rapport.
XSD-validerare
Validera ett XML-dokument mot ett XSD-schema och rapportera element- och typavvikelser med exakta radnummer.
YAML till JSON
Omvandla YAML-konfiguration till JSON för verktyg och API:er som bara accepterar JSON. Hanterar ankare, merge-nycklar och nästlade strukturer.
XML-formaterare
Snygga till XML-dokument med konsekvent indrag och fånga formfel med exakta radnummer.
XML till JSON
Omvandla XML-dokument till ren JSON, med bevarade attribut, textnoder och arrayer där det behövs. Tre stilar: kompakt, Badgerfish eller literal.
Verktyget finns på andra språk
- ตัวสร้างไฟล์ config ของ Nginx [TH]
- Generator konfiguracji Nginx [PL]
- Trình tạo cấu hình Nginx [VI]
- Generator Konfigurasi Nginx [ID]
- مولّد إعدادات Nginx [AR]
- Nginx Konfigurationsgenerator [DE]
- Nginx 設定ジェネレーター [JA]
- Gerador de Configuração Nginx [PT]
- Generador de Configuración de Nginx [ES]
- Nginx 설정 생성기 [KO]
- Générateur de configuration Nginx [FR]
- Nginx-configuratiegenerator [NL]
- Nginx Config Generator [EN]
- Generatore di Configurazione Nginx [IT]
- Генератор конфигураций Nginx [RU]
- Nginx Yapılandırma Üreteci [TR]
- Nginx 配置生成器 [ZH]