Generator Konfigurasi Nginx
Menulis konfigurasi Nginx dari nol berarti harus mengingat setiap baris proxy_set_header, setiap tipe MIME yang dikompresi gzip, dan beda halus antara try_files $uri/ /index.php?$args dengan versi yang diam-diam merusak routing. Generator ini menanyakan domain, upstream, handler PHP, dan lokasi file SSL, lalu menghasilkan sebuah server block dengan nilai bawaan yang masuk akal untuk TLS, HTTP/2, cache aset statis, dan kompresi.
Cara membuat server block Anda
-
1
Pilih preset
Situs statis, PHP-FPM (Laravel, WordPress), reverse proxy Node.js, atau sekadar redirect 301.
-
2
Masukkan domain
Sertakan daftar server_name, biasanya varian dengan www dan tanpa www.
-
3
Atur detail SSL
Arahkan ke file fullchain dan privkey Anda, atau lewati langkah ini jika hanya memakai HTTP.
-
4
Sesuaikan upstream
Port, path socket, atau URL backend untuk kasus proxy_pass.
-
5
Salin dan pasang
Simpan hasilnya di /etc/nginx/sites-available, jalankan nginx -t, lalu reload Nginx.
Seperti apa server block yang baik
Virtual host Nginx modern biasanya terdiri dari bagian-bagian berikut:
| Bagian | Fungsi |
|---|---|
listen 443 ssl http2 |
Menerima HTTPS dengan HTTP/2 aktif |
ssl_certificate + ssl_certificate_key |
Menunjuk ke sertifikat dan kunci TLS |
ssl_protocols TLSv1.2 TLSv1.3 |
Membuang versi TLS lama |
gzip on + daftar tipe |
Mengompresi teks/HTML/JSON/JS/CSS saat dikirim |
Header expires untuk aset statis |
Mengurangi permintaan ulang dari pengunjung yang kembali |
try_files |
Meneruskan ke front controller (PHP, Laravel, dll.) |
| HSTS + header keamanan | Memaksa browser tetap memakai TLS |
Dasar-dasar reverse proxy
Untuk aplikasi Node.js, Python, atau Ruby yang berjalan di belakang 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";
}
Melupakan X-Forwarded-For adalah cara klasik untuk kehilangan alamat IP asli pengunjung di log aplikasi Anda.
Kesalahan yang sering terjadi
- Tidak ada server_name cadangan. Bila tidak ada nama yang cocok, Nginx memakai server block pertama sebagai default. Pasang satu block penangkap
server_name _yang mengembalikan 444 agar terhindar dari serangan lewat header Host. - Urutan sertifikat salah. File
ssl_certificateharus berisi rantai penuh (fullchain: sertifikat situs + sertifikat perantara), bukan hanya sertifikat situs. - Cache terlalu agresif. Mengirim
expires 1yuntuk/index.htmlakan mengacaukan setiap rilis. Gunakan URL aset yang diberi versi. - Reload tanpa tes. Selalu jalankan
nginx -tsebelumsystemctl reload nginx. Satu salah ketik pada sintaks bisa membuat situs mati.
Pertanyaan yang Sering Diajukan
HTTP/2 sudah stabil dan didukung penuh di Nginx 1.25+. HTTP/3 (QUIC) tersedia di Nginx 1.25+ tetapi masih berstatus eksperimental. Untuk konfigurasi produksi saat ini, aktifkan HTTP/2 dan, bila mau, tambahkan HTTP/3 lewat direktif http3 dan quic.
Konvensinya adalah /etc/ssl/certs/ untuk rantai publik dan /etc/ssl/private/ untuk kunci privat. Let’s Encrypt menaruh semuanya di /etc/letsencrypt/live/domain/. Ikuti lokasi yang diharapkan oleh alat pembaruan sertifikat Anda.
Ya, untuk hampir semua situs. Tambahkan server block terpisah di port 80 yang mengembalikan 301 https://$host$request_uri. Dipadukan dengan HSTS, block HTTP itu hampir tidak pernah tersentuh lagi setelah permintaan pertama.
Jalankan sudo nginx -t untuk memeriksa konfigurasi tanpa me-reload. Jika muncul “syntax is ok” dan “test is successful”, lakukan reload dengan sudo systemctl reload nginx. Jangan pernah memakai restart di produksi, karena reload berjalan tanpa memutus layanan.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Alat ini tersedia dalam bahasa lain
- Nginx 設定ジェネレーター [JA]
- Nginx-konfigurationsgenerator [SV]
- Trình tạo cấu hình Nginx [VI]
- Générateur de configuration Nginx [FR]
- Nginx-configuratiegenerator [NL]
- Nginx 설정 생성기 [KO]
- Gerador de Configuração Nginx [PT]
- Generador de Configuración de Nginx [ES]
- مولّد إعدادات Nginx [AR]
- ตัวสร้างไฟล์ config ของ Nginx [TH]
- Nginx Konfigurationsgenerator [DE]
- Generator konfiguracji Nginx [PL]
- Nginx Config Generator [EN]
- Generatore di Configurazione Nginx [IT]
- Генератор конфигураций Nginx [RU]
- Nginx Yapılandırma Üreteci [TR]
- Nginx 配置生成器 [ZH]