Nginx Config — Dijelasin Pakai Analogi (Biar Nangkep!)

Anggap Nginx itu adalah sebuah Gedung Perkantoran Mewah. Internet adalah jalanan di luar gedung. User/pengunjung = tamu yang datang dari jalan. Backend (Laravel, Node, dll) = para karyawan di dalam gedung yang kerja beneran. Nginx = satpam + resepsionis + lift + sistem keamanan gedung — semua dalam satu paket.


🏢 GAMBARAN BESAR DULU

Bayangkan kamu punya gedung perkantoran yang punya:

Setiap tamu (request) datang dari jalan (internet), disambut resepsionis (Nginx), lalu diantarkan ke karyawan yang tepat (backend).


BAGIAN 1 — PENGATURAN GEDUNG (Global Config)


pid /tmp/nginx.pid;

🔑 Analoginya: Papan Nama Shift Satpam

Bayangkan satpam gedung wajib nulis namanya di papan absen setiap mulai shift:

“Satpam yang jaga sekarang: Budi, nomor ID: 4821”

Nah nginx.pid itu papan absennya. Isinya cuma satu angka — nomor ID proses Nginx yang sedang jalan.

Kenapa perlu? Kalau kamu mau kasih perintah ke Nginx (restart, reload config), sistem perlu tahu “hei, Nginx yang mana yang harus diperintah?” Dia tinggal baca papan itu.

Kalau tidak ada? Nginx tetap jalan, tapi sistem bingung nyari siapa yang harus diperintah. Ibarat mau panggil satpam tapi tidak tahu nama dan nomor IDnya.

Kenapa di /tmp/? Karena /tmp/ itu seperti meja resepsionis — siapa pun boleh taruh sesuatu di sana. Kalau ditaruh di /var/run/, itu seperti lemari terkunci yang hanya bos (root) yang boleh buka. Kalau Nginx bukan bos, dia tidak bisa nulis di sana.


worker_processes 1;

👷 Analoginya: Jumlah Resepsionis

Resepsionis inilah yang langsung melayani tamu. worker_processes = berapa orang resepsionis yang kamu hire.