50 Pertanyaan dan Jawaban Wawancara Nginx Teratas (2026)

Pertanyaan dan Jawaban Wawancara Nginx Terpopuler

Persiapan untuk wawancara Nginx membutuhkan pandangan jauh ke depan, kejelasan, dan kesadaran tentang bagaimana pewawancara mengevaluasi pengetahuan operasional nyata saat ini. Pertanyaan Wawancara Nginx mengungkapkan kedalaman, pengambilan keputusan, kemampuan pemecahan masalah, dan kesiapan produksi.

Peran-peran ini membuka jalan di berbagai bidang seperti infrastruktur cloud, rekayasa kinerja, dan keamanan, di mana konfigurasi praktis sangat penting. Para pemberi kerja menghargai pengalaman teknis, keahlian di bidang tertentu, dan analisis yang diperoleh dari bekerja di lapangan, membantu para lulusan baru, insinyur tingkat menengah, dan profesional senior untuk menerapkan keterampilan dasar hingga tingkat lanjut dalam tim di bawah bimbingan manajer dan pemimpin tim.
Baca lebih banyak…

👉 Unduh PDF Gratis: Pertanyaan & Jawaban Wawancara Nginx

Pertanyaan dan Jawaban Wawancara Nginx Terpopuler

1) Jelaskan apa itu NGINX dan mengapa NGINX banyak digunakan dalam infrastruktur web.

NGINX adalah server web open-source berkinerja tinggi yang juga berfungsi sebagai reverse proxy, load balancer, dan cache HTTP. Ia mendukung protokol HTTP, HTTPS, SMTP, POP3, dan IMAP. Arsitekturnya menggunakan sebuah event-driven, asynchronous model Hal ini memungkinkan NGINX untuk menangani puluhan ribu koneksi simultan dengan penggunaan memori dan CPU yang rendah. Skalabilitas ini membuat NGINX sangat cocok untuk aplikasi web dengan trafik tinggi, layanan mikro, dan arsitektur terdistribusi. Misalnya, perusahaan dengan beban kerja trafik yang berat (seperti platform konten atau gateway API) seringkali lebih memilih NGINX untuk menangani koneksi bersamaan dan pengiriman konten statis secara efisien.


2) Bagaimana NGINX menangani permintaan HTTP secara internal (arsitektur berbasis peristiwa)?

Kekuatan inti NGINX terletak pada event-driven, non-blocking architectureAlih-alih membuat thread atau proses terpisah untuk setiap permintaan (seperti server tradisional), NGINX menggunakan sejumlah kecil proses pekerja yang memanfaatkan loop peristiwa asinkron. Setiap pekerja dapat mengelola ribuan koneksi dengan menunggu pemberitahuan kesiapan sistem operasi dan memproses peristiwa saat terjadi. Karena tidak memblokir operasi I/O, NGINX dapat menyajikan konten statis dan yang diproksikan dengan sumber daya minimal. Model ini ideal untuk kasus penggunaan konkurensi tinggi, sehingga lebih efisien daripada server berbasis proses di bawah beban berat.


3) Apa perbedaan utama antara NGINX dan Apache?

Meskipun NGINX dan Apache sama-sama merupakan server web populer, keduanya berbeda dalam arsitektur, kinerja, dan tujuan desain:

Aspek nginx Apache
Model Konkurensi Berbasis peristiwa (asinkron, non-blokir) Berbasis proses/thread (blocking)
Memory Usage Biaya per koneksi rendah Lebih tinggi per koneksi
Kasus Penggunaan Terbaik Trafik tinggi, konten statis, penyeimbangan beban Konten dinamis dan ekosistem modul yang kaya
Skalabilitas Skala dengan sumber daya yang lebih sedikit Membutuhkan lebih banyak perangkat keras karena prosesnya.
Penanganan Modul Modul yang dipilih pada waktu kompilasi Dinamis saat dijalankan

Desain NGINX mengoptimalkan kinerja di bawah beban, sedangkan Apache memberikan fleksibilitas yang lebih besar dengan modul dinamis dan dukungan bahasa yang luas.


4) Apa saja komponen utama dari file konfigurasi NGINX?

File konfigurasi NGINX (jalur default: /etc/nginx/nginx.conf) terdiri dari blok arahan terstruktur yang menentukan bagaimana NGINX berperilaku:

  • Konteks Utama: pengaturan global seperti worker_processes, error_log, dan pid
  • Blok Acara: mengelola koneksi pekerja dan multi-pemrosesan
  • Blok HTTP: Berisi konfigurasi untuk penanganan HTTP (kompresi, caching, gzip, dll.)
    • Blok Server: mendefinisikan host virtual (domain dan port)
    • Blok Lokasi: menentukan aturan perutean dan bagaimana URI tertentu ditangani

Blok-blok ini bekerja sama untuk mengarahkan permintaan, menentukan pengaturan proxy, dan mengkonfigurasi SSL/TLS dan caching.


5) Bagaimana cara memuat ulang konfigurasi NGINX dengan aman tanpa waktu henti?

Untuk memuat ulang NGINX dengan konfigurasi yang diperbarui without interrupting active connectionsAnda dapat menggunakan perintah berikut:

nginx -s reload

atau pada sistem yang menggunakan systemd:

sudo systemctl reload nginx

Perintah ini memberi sinyal kepada proses utama untuk membaca ulang file konfigurasi dan memulai ulang pekerja dengan lancar tanpa memutuskan koneksi yang ada. Mengetahui cara melakukan pemuatan ulang yang mulus seperti ini sangat penting di lingkungan yang membutuhkan ketersediaan tinggi.


6) Jelaskan cara mengatur NGINX sebagai reverse proxy.

Reverse proxy meneruskan permintaan klien ke server backend (grup upstream) dan kemudian mengembalikan responsnya. Berikut adalah contoh blok reverse proxy NGINX:

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
        }
    }
}

Pengaturan ini meningkatkan keamanan, menyediakan distribusi beban, dan memungkinkan kebijakan caching atau pembatasan laju antara klien dan server aplikasi.


7) Jelaskan proses Master dan Worker NGINX.

Di NGINX:

  • The Proses Utama Mengelola konfigurasi, memulai proses pekerja, dan menangani operasi istimewa seperti pengikatan ke port.
  • Proses Kerja Melakukan penanganan permintaan sebenarnya—memproses koneksi masuk dan menjalankan aturan yang telah dikonfigurasi.

Penggunaan banyak pekerja meningkatkan konkurensi dan dapat disesuaikan tergantung pada inti CPU yang tersedia dan kebutuhan lalu lintas. Pembagian peran meningkatkan kinerja dan stabilitas.


8) Bagaimana cara membatasi pemrosesan nama server yang tidak terdefinisi di NGINX?

Untuk menolak permintaan tanpa validitas Host Header di NGINX:

server {
    listen 80;
    server_name "";
    return 444;
}

Konfigurasi ini mengembalikan kode. 444, sebuah status NGINX non-standar yang menutup koneksi tanpa respons, secara efektif menolak host yang tidak terdefinisi dan meningkatkan keamanan.


9) Untuk apa ngx_http_upstream_module digunakan?

The ngx_http_upstream_module mendefinisikan groups of backend servers (upstream) yang dapat digunakan NGINX untuk meneruskan permintaan menggunakan arahan seperti proxy_pass, fastcgi_pass, atau uwsgi_passHal ini memungkinkan fleksibilitas dalam penskalaan aplikasi di balik lingkungan yang seimbang bebannya. Ketika beberapa server backend dikelompokkan, NGINX dapat mendistribusikan lalu lintas berdasarkan kebijakan yang telah ditentukan, mendukung strategi round-robin dan strategi lainnya.


10) Jelaskan bagaimana NGINX digunakan untuk menyajikan konten statis dan dinamis.

NGINX sangat efisien dalam melayani file statis (HTML, CSS, gambar) langsung menggunakan mekanisme event loop dan I/O file yang dioptimalkan. Untuk konten dinamisNGINX meneruskan permintaan ke prosesor backend seperti PHP-FPM, Python Server WSGI, atau kerangka kerja aplikasi melalui mekanisme FastCGI/proxy. Pemisahan ini memungkinkan NGINX untuk unggul sebagai server file statis sekaligus memanfaatkan layanan backend untuk pembuatan file dinamis, memastikan kinerja dan skalabilitas yang optimal.


11) Bagaimana cara kerja load balancing di NGINX, dan apa saja metode yang tersedia?

NGINX menyediakan layanan yang andal. penyeimbang beban melalui upstream Direktif ini mendistribusikan lalu lintas ke beberapa server backend untuk mengoptimalkan kinerja dan memastikan ketersediaan tinggi. Direktif ini mendukung beberapa metode:

metode Uraian Teknis Kasus Penggunaan Terbaik
Round Robin Metode default yang memutar permintaan di antara server secara berurutan. Beban kerja terdistribusi secara merata.
Sambungan Terkecil Mengirim permintaan ke server dengan koneksi aktif paling sedikit. Sesi yang berlangsung lama.
IP Hash Menggunakan IP klien untuk menentukan pemilihan server. Keberlangsungan sesi.
Waktu Paling Singkat Saldo berdasarkan waktu respons dan jumlah koneksi. Aplikasi yang sensitif terhadap latensi.

NGINX juga dapat melakukan pemeriksaan kesehatan untuk menghapus server yang tidak sehat secara dinamis, memastikan kelancaran arus lalu lintas dan ketahanan.


12) Apa perbedaan antara NGINX open source dan NGINX Plus?

nginx Open Source adalah versi komunitas yang menawarkan kemampuan penting seperti server web, proxy, dan penyeimbangan beban. NGINX Ditambah adalah edisi komersial yang memperluas fitur-fitur tersebut dengan peningkatan tingkat perusahaan seperti pemantauan tingkat lanjut, persistensi sesi, konfigurasi ulang dinamis, dan pemeriksaan kesehatan aktif.

Fitur NGINX Sumber Terbuka NGINX Ditambah
Penyeimbang beban Dasar (Round Robin, IP Hash) Tingkat Lanjut (Waktu Paling Singkat, Konfigurasi Ulang Dinamis)
Pemantauan Alat manual / eksternal Dasbor dan API bawaan
caching Dasar Dilengkapi dengan kontrol pembersihan.
Bantuan Hanya komunitas Dukungan dan pembaruan untuk perusahaan

Organisasi dengan beban kerja yang sangat penting sering memilih NGINX Plus karena keandalan dan kemampuan pengamatannya yang lebih baik.


13) Bagaimana cara Anda mengimplementasikan caching di NGINX?

Caching di NGINX meningkatkan kecepatan respons dan mengurangi beban backend dengan menyimpan konten yang sering diakses secara lokal. Fitur ini diaktifkan menggunakan proxy_cache arahan. Contoh konfigurasi:

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=1g;
server {
    location / {
        proxy_cache my_cache;
        proxy_pass http://backend;
    }
}

Respons yang di-cache disajikan langsung dari disk saat permintaan yang sesuai tiba, melewati pemrosesan hulu. Anda dapat mengontrol masa berlaku cache menggunakan proxy_cache_valid dan mengecualikan URI tertentu dengan proxy_no_cacheMekanisme ini sangat penting untuk lingkungan dengan lalu lintas tinggi seperti situs berita atau situs e-commerce.


14) Jelaskan tujuan dan penggunaan direktif “try_files”.

The try_files Direktif ini memeriksa keberadaan file dalam urutan tertentu sebelum meneruskan permintaan ke lokasi cadangan. Direktif ini umumnya digunakan untuk... perutean situs statis or aplikasi satu halaman (SPA).

Contoh:

location / {
    try_files $uri $uri/ /index.html;
}

Di sini, NGINX pertama-tama memeriksa apakah URI yang diminta cocok dengan sebuah file, kemudian sebuah direktori, dan akhirnya mengarahkan permintaan yang tidak cocok ke /index.htmlHal ini meningkatkan efisiensi dan pengalaman pengguna dengan menyajikan file yang di-cache atau file statis secara langsung, menghindari panggilan backend yang tidak perlu.


15) Bagaimana NGINX menangani penghentian HTTPS dan SSL/TLS?

NGINX bertindak sebagai proxy terminasi SSL/TLS, menangani enkripsi dan dekripsi pada lapisan server sebelum meneruskan permintaan yang tidak terenkripsi ke layanan hulu. Contoh konfigurasi:

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;
    location / {
        proxy_pass http://backend;
    }
}

Mendukung HTTP / 2, Stapel OCSP, HSTS, dan rangkaian sandi modern, memungkinkan komunikasi yang aman dan berkinerja tinggi. Mengakhiri SSL di NGINX mengurangi beban enkripsi pada server backend dan menyederhanakan manajemen sertifikat.


16) Apa perbedaan antara rewrite dan redirect di NGINX?

Kedua menulis kembali dan redirect Mereka memodifikasi cara permintaan dirutekan, tetapi pada dasarnya berbeda:

Aspek Menulis kembali redirect
Tipe Penulisan ulang URL internal Pengalihan klien eksternal
Kode respon 200 (dalaman) 301/302 (Pengalihan HTTP)
Jarak penglihatan Transparan bagi pengguna Klien melihat URL baru
Use Case URL dan routing yang ramah SEO Migrasi domain, penegakan HTTPS

Contoh:

rewrite ^/oldpage$ /newpage permanent;  # Redirect
rewrite ^/img/(.*)$ /assets/$1 break;   # Rewrite

Memahami perbedaan ini sangat penting untuk mengoptimalkan SEO dan logika perutean secara efektif.


17) Bagaimana cara mengamankan NGINX dari kerentanan umum?

Penguatan keamanan melibatkan kombinasi praktik terbaik:

  • Nonaktifkan token server: server_tokens off;
  • Batasi metode permintaan: Hanya izinkan GET, POST, HEAD.
  • Batasi luapan buffer: Konfigurasi client_max_body_size dan client_body_buffer_size.
  • Gunakan HTTPS dengan algoritma enkripsi modern.
  • Aktifkan pembatasan kecepatan melalui limit_req_zone.
  • Sembunyikan informasi versi dan nonaktifkan daftar direktori.

Selain itu, menggunakan Firewall Aplikasi Web (WAF) 'like' ModSecurity with NGINX dapat menyaring lalu lintas berbahaya. Memperbarui NGINX secara berkala dan menerapkan patch keamanan sangat penting untuk mencegah eksploitasi zero-day.


18) Apa itu variabel NGINX, dan bagaimana cara penggunaannya dalam konfigurasi?

Variabel NGINX menyimpan data dinamis yang digunakan dalam konfigurasi dan pemrosesan log. Variabel ini dapat mewakili header permintaan, IP klien, atau nilai yang dihitung. Contohnya meliputi: $remote_addr, $host, $uri, $request_method, dan $upstream_addr.

Misalnya:

log_format custom '$remote_addr - $host - $uri';

Variabel menambah fleksibilitas, memungkinkan perutean bersyarat dan pencatatan khusus. Anda juga dapat mendefinisikan variabel khusus menggunakan set arahan, yang membantu dalam desain konfigurasi modular.


19) Bagaimana cara mengatur pembatasan laju (rate limiting) di NGINX?

Pembatasan laju (rate limiting) mengontrol seberapa sering pengguna dapat mengirim permintaan, melindungi dari serangan brute force dan DDoS. Pengaturannya dilakukan menggunakan... limit_req_zone direktif:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
    location / {
        limit_req zone=mylimit burst=5;
    }
}

Ini memungkinkan satu permintaan per detik dengan lonjakan lima permintaan. NGINX akan membuang permintaan berlebih atau menundanya berdasarkan konfigurasi. Pembatasan laju memastikan penggunaan sumber daya yang adil dan mencegah kelebihan beban server.


20) Apa saja kelebihan dan kekurangan menggunakan NGINX sebagai reverse proxy?

NGINX sebagai reverse proxy menawarkan banyak keuntungan tetapi juga beberapa kekurangan:

Kelebihan Kekurangan
Performa tinggi dan penanganan konkurensi Membutuhkan penyetelan manual untuk penerapan skala besar.
Terminasi SSL dan keamanan terpusat Dukungan modul dinamis terbatas (pada saat kompilasi)
Dukungan penyeimbangan beban dan caching Konfigurasi yang kompleks untuk pengguna baru
Penyaringan lapisan aplikasi Kurangnya eksekusi konten dinamis bawaan.

Keunggulannya jauh lebih besar daripada keterbatasannya dalam sebagian besar skenario perusahaan, menjadikan NGINX sebagai komponen yang sangat diperlukan dalam infrastruktur web modern.


21) Bagaimana Anda dapat memantau kinerja dan kesehatan NGINX di lingkungan produksi?

Pemantauan NGINX sangat penting untuk mengidentifikasi hambatan, kegagalan, dan perilaku lalu lintas yang abnormal. Beberapa pendekatan dapat digunakan:

  1. Modul Status Bawaan (stub_status):

    Menampilkan koneksi aktif, permintaan yang ditangani, dan status baca/tulis. Contoh:

    location /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
    
  2. Dasbor NGINX Plus: Menyediakan metrik waktu nyata melalui REST API dan GUI.
  3. Integrasi Pihak Ketiga: Alat-alat seperti Prometheus, Grafana, Datadog, atau ELK dapat mengumpulkan metrik dan log.
  4. Log Akses & Kesalahan: Rotasi dan analisis log secara berkala dengan alat seperti GoAccess atau AWStats meningkatkan kemampuan pengamatan.

Pemantauan membantu memastikan waktu operasional yang optimal, deteksi kegagalan yang cepat, dan perencanaan kapasitas.


22) Apa perbedaan antara direktif proxy_pass dan fastcgi_pass?

Kedua arahan tersebut meneruskan permintaan ke layanan backend tetapi dirancang untuk protokol yang berbeda:

Direktif Tujuan Protokol Backend Contoh Penggunaan
proxy_pass Meneruskan permintaan HTTP atau HTTPS ke server backend. HTTP Revmemproksi API web atau layanan mikro secara terbalik
fastcgi_pass Mengirim permintaan ke prosesor FastCGI CGI cepat PHP-FPM, Python Aplikasi FastCGI

Contoh:

location /api/ {
    proxy_pass http://backend;
}
location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}

Singkatnya, gunakan proxy_pass untuk backend HTTP generik dan fastcgi_pass untuk runtime bahasa dinamis seperti PHP.


23) Bagaimana cara mengkonfigurasi kompresi gzip di NGINX dan apa saja manfaatnya?

Mengaktifkan kompresi Gzip di NGINX mengurangi penggunaan bandwidth dan meningkatkan waktu pemuatan dengan mengompresi respons berbasis teks sebelum mengirimkannya ke klien.

Contoh konfigurasi:

gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1024;
gzip_comp_level 6;
gzip_vary on;

Manfaat:

  • Mengurangi ukuran transfer file hingga 70%.
  • Meningkatkan waktu respons pertama (Time-to-First-Byte/TTFB) dan skor performa halaman.
  • Menghemat biaya bandwidth, terutama bermanfaat bagi pengguna seluler.

Namun, metode ini tidak boleh diterapkan pada file yang sudah terkompresi (misalnya, .zip, .jpg, .png) untuk menghindari beban CPU yang berlebihan.


24) Apa saja praktik terbaik untuk menyetel NGINX untuk lalu lintas tinggi?

Optimalisasi lalu lintas tinggi melibatkan penyetelan sumber daya dan parameter konfigurasi yang cermat:

Daerah Direktif Latihan yang Direkomendasikan
Pekerja worker_processes auto; Cocokkan inti CPU
Koneksi worker_connections 4096; Meningkatkan konkurensi
Berusaha agar hidup keepalive_timeout 65; Optimalkan penggunaan kembali klien.
File Descriptors OS ulimit -n Tingkatkan batas untuk soket terbuka
caching proxy_cache_path Mengurangi beban backend
Gzip gzip on; Kompres respons teks

Selain itu, menggunakan I/O disk asinkron, penyeimbang beban, dan pemeriksaan kesehatan hulu Memastikan stabilitas dan kecepatan di bawah permintaan simultan yang sangat besar.


25) Bagaimana NGINX menangani koneksi WebSocket?

WebSocket memungkinkan komunikasi dua arah antara klien dan server — sangat penting untuk aplikasi waktu nyata. NGINX mendukung ini secara native melalui penerusan header yang tepat.

Contoh konfigurasi:

location /ws/ {
    proxy_pass http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

Poin Kunci:

  • The Upgrade dan Connection Header wajib diisi.
  • Pastikan NGINX menggunakan HTTP/1.1 untuk koneksi TCP persisten.
  • Penyeimbangan beban WebSocket mungkin memerlukan sesi tetap (sticky session) menggunakan ip_hash.

Konfigurasi ini mendukung aplikasi seperti obrolan, perdagangan saham, atau game.


26) Apa tujuan dari arahan “worker_rlimit_nofile”?

worker_rlimit_nofile Menentukan jumlah maksimum deskriptor file terbuka yang tersedia untuk proses pekerja. Batasan ini secara langsung memengaruhi berapa banyak koneksi simultan yang dapat ditangani NGINX. Contoh:

worker_rlimit_nofile 100000;

Meningkatkan batas ini sangat penting untuk sistem dengan konkurensi tinggi (seperti gateway API atau platform streaming). Namun, batas OS (ulimit -n) juga harus ditingkatkan agar sesuai dengan nilai ini untuk konsistensi.


27) Bagaimana NGINX dapat digunakan untuk penulisan ulang URL atau pengalihan ke HTTPS secara otomatis?

Mengalihkan HTTP ke HTTPS memastikan komunikasi yang aman. Contoh:

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

Konfigurasi ini mengeluarkan sebuah Pengalihan permanen 301 dari HTTP ke HTTPS. Untuk kontrol yang lebih baik, aturan penulisan ulang dapat memberlakukan pengalihan khusus jalur:

rewrite ^/oldpath$ /newpath permanent;

Penerapan HTTPS otomatis meningkatkan peringkat SEO, mencegah serangan man-in-the-middle, dan menjaga pengalaman pengguna yang konsisten.


28) Apa saja beberapa penyebab umum kesalahan “502 Bad Gateway” di NGINX?

Kode kesalahan “502 Bad Gateway” menunjukkan bahwa NGINX, yang bertindak sebagai proxy, gagal menerima respons yang valid dari server hulu. Penyebab umum meliputi:

  • Server backend mengalami kerusakan atau tidak tersedia.
  • Salah proxy_pass URL atau jalur soket.
  • Batas waktu hulu (proxy_read_timeout terlalu rendah).
  • Firewall atau SELinux memblokir koneksi upstream.
  • Parameter FastCGI (untuk PHP) salah konfigurasi.

Untuk melakukan debugging, periksa log kesalahan (/var/log/nginx/error.log), memverifikasi jangkauan hulu, dan menguji respons backend secara langsung melalui curl.


29) Bagaimana NGINX mendukung arsitektur microservices dan berbasis kontainer (misalnya, Docker, Kubernetes)?

NGINX ideal untuk lingkungan layanan mikro karena desainnya yang ringan dan fungsionalitas reverse proxy. Di Docker atau Kubernetes, fungsinya adalah:

  • Pengontrol Ingress: Mengelola lalu lintas HTTP/S eksternal ke layanan internal.
  • Gerbang Layanan: Melakukan perutean, penyeimbangan beban, dan otentikasi.
  • Proksi Sidecar: Meningkatkan ketahanan dan kemampuan pengamatan pada service mesh (misalnya, Istio).

Konfigurasi NGINX dapat diperbarui secara dinamis melalui Kubernetes ConfigMaps, memungkinkan kontrol lalu lintas terpusat dan manajemen SSL. Pendekatan modularnya sangat sesuai dengan penerapan berbasis kontainer dan cloud-native.


30) Apa saja berbagai cara untuk meningkatkan keamanan NGINX untuk sistem produksi?

Meningkatkan keamanan NGINX memerlukan konfigurasi berlapis:

  1. Pengerasan SSL/TLS: Gunakan algoritma enkripsi modern, nonaktifkan SSLv3/TLSv1.0.
  2. Batasi Metode HTTP: Hanya izinkan kata kerja yang aman (GET, POST, HEAD).
  3. Header Keamanan:
    add_header X-Frame-Options "DENY";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection "1; mode=block";
    
  4. Sembunyikan Info Versi: server_tokens off;
  5. Aktifkan Pembatasan Laju dan Kontrol Akses.
  6. Integrasikan WAF atau Fail2Ban untuk pencegahan serangan brute-force.

Secara gabungan, langkah-langkah ini menciptakan lingkungan NGINX yang tangguh dan siap produksi, yang tahan terhadap eksploitasi umum.


31) Bagaimana cara Anda melakukan debugging masalah NGINX secara efektif?

Debugging NGINX melibatkan analisis sistematis terhadap log, file konfigurasi, dan status proses. Langkah-langkah kuncinya meliputi:

  1. Periksa Sintaksis:
  2. nginx -t
  3. Memvalidasi konfigurasi sebelum memuat ulang.
  4. Aktifkan Pencatatan Debug:

    error_log /var/log/nginx/error.log debug;
  5. Menyediakan diagnostik runtime yang detail.
  6. Analisis Log Akses: Mendeteksi kode respons dan pola permintaan menggunakan:

    tail -f /var/log/nginx/access.log
  7. Uji Konektivitas: penggunaan curl -v or wget untuk memverifikasi ketersediaan akses backend.
  8. Pantau Koneksi Aktif: melalui stub_status or netstat.

Memahami proses pekerja NGINX, batasan buffer, dan respons hulu membantu mengidentifikasi hambatan dengan cepat dalam sistem produksi.


32) Bagaimana cara mengkonfigurasi pencatatan log NGINX, dan apa saja format log kustom?

NGINX menyediakan mekanisme pencatatan log yang fleksibel melalui access_log dan error_log arahan.

Contoh konfigurasi:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" "$request_time"';

access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;

Anda bisa mendefinisikan format khusus untuk menyertakan metrik seperti $upstream_addr, $request_time, atau $bytes_sent.

Untuk pengamatan tingkat lanjut, log sering dikirim ke ELK, Loki, atau Splunk untuk analisis dan pembuatan dasbor secara real-time.


33) Apa peran dari direktif proxy_buffering di NGINX?

proxy_buffering Mengontrol apakah NGINX menyangga respons dari server hulu sebelum mengirimkannya ke klien.

Pengaturan Uraian Teknis Use Case
proxy_buffering on; BufferIni adalah keseluruhan respons untuk throughput yang dioptimalkan. Default; meningkatkan kinerja
proxy_buffering off; Mengalirkan data langsung ke klien tanpa buffering. Streaming waktu nyata atau API

Sebagai contoh, untuk menonaktifkan buffering:

location /stream/ {
    proxy_buffering off;
}

Menonaktifkan buffering ideal untuk layanan obrolan atau streaming, tetapi dapat mengurangi throughput untuk lalu lintas web biasa.


34) Jelaskan bagaimana caching NGINX dapat dinonaktifkan atau dihapus.

NGINX Open Source tidak menyertakan pembersihan cache bawaan, tetapi hal itu dapat dicapai dengan beberapa cara:

  1. Pembersihan Manual: Hapus file dari direktori cache.
    rm -rf /var/cache/nginx/*
  2. Modul pihak ketiga: penggunaan ngx_cache_purge untuk menghapus melalui permintaan HTTP:
    location ~ /purge(/.*) {
        proxy_cache_purge my_cache $host$1;
    }
    
  3. Fitur NGINX Plus: Memungkinkan penghapusan cache berbasis API secara dinamis.

Pembersihan memastikan konten yang sudah usang segera diganti, menjaga kesegaran dan konsistensi konten di seluruh penerapan CDN atau multi-node.


35) Bagaimana NGINX menangani waktu habis koneksi?

NGINX menyediakan beberapa arahan batas waktu untuk mengontrol berapa lama ia menunggu respons dari klien atau upstream:

Direktif Tujuan Default(s)
client_body_timeout Waktu tunggu untuk tubuh klien 60
client_header_timeout Waktu tunggu untuk header klien 60
keepalive_timeout Koneksi keepalive idle 75
send_timeout Saatnya mengirim data ke klien 60
proxy_read_timeout Waktu tunggu untuk respons dari hulu. 60

Penyetelan yang tepat menghindari pemutusan koneksi yang tidak perlu dan memastikan pengalaman pengguna yang lebih lancar dalam kondisi jaringan yang berubah-ubah.


36) Bagaimana cara Anda mengimplementasikan blue-green deployment menggunakan NGINX?

Di sebuah penyebaran biru-hijauDua lingkungan (Biru = aktif, Hijau = siaga) berjalan secara bersamaan. NGINX bertindak sebagai perute lalu lintas di antara keduanya.

Contoh konfigurasi:

upstream app_cluster {
    server blue.example.com;
    #server green.example.com; # Uncomment during switch
}
server {
    location / {
        proxy_pass http://app_cluster;
    }
}

Ketika versi baru (Hijau) diuji dan diverifikasi, lalu lintas dialihkan dengan memperbarui definisi upstream dan memuat ulang NGINX (nginx -s reload).

Metode ini memastikan nol waktu henti selama pembaruan atau pengembalian aplikasi.


37) Apa itu rate limiting burst, dan bagaimana hal itu meningkatkan kinerja NGINX?

The meledak Parameter dalam pembatasan laju memungkinkan lonjakan lalu lintas singkat untuk sementara waktu lolos tanpa penolakan langsung.

Contoh:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
location /api/ {
    limit_req zone=mylimit burst=5 nodelay;
}

Di sini, lima permintaan tambahan diterima secara instan sebelum pembatasan diterapkan.

Teknik ini memperlancar lonjakan lalu lintas, menjaga pengalaman pengguna yang konsisten tanpa membebani sistem backend.


38) Bagaimana NGINX menangani lingkungan IPv6 dan dual-stack?

NGINX sepenuhnya mendukung IPv6 baik dalam konfigurasi server maupun upstream. Contoh:

server {
    listen [::]:80 ipv6only=on;
    server_name example.com;
}

Dukungan dual-stack (IPv4 + IPv6) dicapai dengan menyertakan keduanya:

listen 80;
listen [::]:80;

Kompatibilitas IPv6 memastikan aksesibilitas yang lebih luas, terutama untuk klien seluler dan internasional, dan sangat penting untuk kepatuhan terhadap standar internet modern.


39) Bagaimana cara mengkonfigurasi sticky sessions di load balancing NGINX?

Sticky sessions memastikan bahwa permintaan dari klien yang sama selalu diarahkan ke server backend yang sama.

  1. Menggunakan ip_hash:
    upstream backend {
        ip_hash;
        server app1.example.com;
        server app2.example.com;
    }
    
  2. NGINX Plus Sticky Cookie:
    Penyimpanan sesi tingkat lanjut dengan cookie yang dapat dikonfigurasi.

Sticky session sangat penting untuk aplikasi stateful seperti dasbor pengguna atau keranjang belanja, memastikan konsistensi data sesi tanpa penyimpanan bersama.


40) Apa saja level log utama di NGINX, dan bagaimana perbedaannya?

NGINX mendukung level log hierarkis untuk mengontrol detail informasi dalam log kesalahan.

Tingkat Uraian Teknis
debug Informasi detail untuk pemecahan masalah (sangat rinci)
info Informasi umum saat runtime
notice Peristiwa penting namun tidak kritis
warn Potensi masalah atau kesalahan konfigurasi
error Operakesalahan nasional yang memerlukan perhatian
crit, alert, emerg Kegagalan kritis dan peringatan sistem

Contoh konfigurasi:

error_log /var/log/nginx/error.log warn;

Menyesuaikan level log sesuai dengan lingkungan (debug di lingkungan staging, warn di lingkungan produksi) membantu menjaga keseimbangan antara visibilitas dan performa.


41) Bagaimana Anda melakukan benchmark terhadap performa NGINX?

Pengujian kinerja NGINX melibatkan pengukuran throughput, latensi, dan konkurensi untuk mengidentifikasi hambatan konfigurasi. Alat umum yang digunakan meliputi:

ApacheBench (ab):

ab -n 10000 -c 100 http://example.com/
  • Pengujian meminta volume dan konkurensi.
  • pekerjaan: Menyediakan persentil latensi dan tingkat permintaan yang terperinci.
  • pengepungan / httperf: Mensimulasikan beban lalu lintas dunia nyata.
  • Grafana + Prometheus: Memantau metrik kinerja secara langsung.

Benchmarking harus mengukur parameter seperti requests per second (RPS), time per request, dan error rate.

Menyetel variabel seperti worker_processes, worker_connections, dan keepalive_timeout Meningkatkan secara signifikan throughput yang diamati.


42) Bagaimana NGINX dapat terintegrasi dengan pipeline CI/CD?

NGINX terintegrasi dengan mulus dengan CI / CD untuk penerapan, pengujian, dan manajemen konfigurasi otomatis. Pendekatan umum meliputi:

  • Infrastruktur sebagai Kode (IaC): Kelola konfigurasi dengan Ansible, Terraform, atau Helm chart.
  • Kontainer Docker: Membangun dan menyebarkan citra NGINX menggunakan alat CI (Jenkins, GitLab CI, atau GitHub Actions).
  • Pengujian Otomatis: Validasi konfigurasi menggunakan nginx -t dalam tahap pemrosesan.
  • Biru-Hijau / Canary Otomatisasi Penerapan: Perbarui server hulu secara dinamis selama peluncuran.

Contoh cuplikan GitLab CI:

deploy:
  script:
    - nginx -t
    - systemctl reload nginx

Penyebaran otomatis memastikan peluncuran NGINX yang konsisten, terkontrol versinya, dan andal.


43) Jelaskan peran NGINX Ingress Controller dalam Kubernetes.

The Pengontrol Masuknya NGINX Mengelola lalu lintas masuk ke layanan Kubernetes. Menerjemahkan sumber daya Kubernetes Ingress ke dalam konfigurasi NGINX secara dinamis.

Fungsi utama:

  • Mengarahkan permintaan HTTP/S ke layanan yang tepat.
  • Menyediakan penghentian SSL, pembatasan laju, dan penulisan ulang URL.
  • Mendukung penyeimbangan beban di seluruh pod.
  • Memungkinkan anotasi untuk kontrol yang lebih detail (misalnya, rewrite-target, proxy-body-size).

Contoh Ingress YAML:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
  annotations:    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - host: myapp.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web-service
                port:
                  number: 80

Arsitektur ini memisahkan logika perutean lalu lintas dari penerapan kontainer untuk skalabilitas yang fleksibel.


44) Bagaimana NGINX menangani HTTP/2 dan apa saja keuntungannya?

NGINX sepenuhnya mendukung HTTP / 2, penerus HTTP/1.1, meningkatkan efisiensi melalui multiplexing dan kompresi header.

Untuk mengaktifkan HTTP/2:

server {
    listen 443 ssl http2;
    ...
}

Keuntungan:

Fitur Uraian Teknis
Multiplexing Beberapa permintaan per koneksi TCP
Kompresi Header (HPACK) Mengurangi penggunaan bandwidth
Server push Mengirimkan aset kepada klien secara proaktif.
TLS yang lebih cepat Proses verifikasi data yang efisien dan aman.

HTTP/2 secara drastis mengurangi latensi dan waktu pemuatan halaman, terutama untuk aplikasi web modern dengan banyak aset.


45) Apa perbedaan antara upstream keepalive dan connection reuse di NGINX?

Keepalive hulu Mempertahankan koneksi tetap ke server backend, mengurangi overhead jabat tangan TCP. Contoh:

upstream backend {
    server app1.example.com;
    keepalive 32;
}

Perbedaan:

Aspek Berusaha agar hidup Penggunaan Kembali Koneksi
Cakupan Antara NGINX dan hulu Antara NGINX dan klien
Tujuan Optimasi backend Performa frontend
konfigurasi keepalive dalam upstream keepalive_timeout in server blok

Kedua teknik tersebut mengurangi latensi tetapi melayani lapisan komunikasi yang berbeda (sisi klien vs. sisi server).


46) Bagaimana Anda dapat mengkonfigurasi ulang NGINX secara dinamis tanpa memulai ulang?

Untuk menerapkan konfigurasi baru secara dinamis. tanpa waktu henti, menggunakan reload mekanisme:

nginx -t && nginx -s reload

Ini menandakan proses utama untuk membuat worker baru dengan konfigurasi yang diperbarui sambil mematikan worker lama secara bertahap.

Di NGINX Plus, perubahan dapat dilakukan. melalui API (misalnya, menambahkan server upstream secara dinamis):

curl --request POST \
  --url http://localhost:8080/api/3/http/upstreams/backend/servers \
  --header 'Content-Type: application/json' \
  --data-raw '{"server":"10.0.0.12"}'

Kemampuan ini mendukung penerapan tanpa waktu henti (zero-downtime) dalam pipeline DevOps modern.


47) Apa perbedaan utama antara reverse proxy dan forward proxy di NGINX?

Aspek Revsalahkan Proxy Teruskan Proksi
Visibilitas Klien Klien tidak menyadari keberadaan server backend. Server tidak mengetahui identitas klien.
Penggunaan Utama Penyeimbangan beban, caching, penghentian SSL Penyaringan, anonimitas, kontrol akses
Kasus Penggunaan Umum Distribusi lalu lintas web Penjelajahan keluar yang aman atau untuk keperluan perusahaan
Dukungan NGINX Asli dan banyak digunakan Membutuhkan konfigurasi khusus

Contoh (proxy penerusan):

location / {
    proxy_pass $scheme://$http_host$request_uri;
    proxy_set_header Host $http_host;
}

RevPenggunaan proxy terbalik tetap menjadi kasus penggunaan yang dominan, terutama untuk gateway API dan arsitektur layanan mikro.


48) Bagaimana NGINX dapat digunakan untuk pembatasan dan pengaturan laju API?

Pembatasan laju (rate limiting) melindungi API dari penyalahgunaan dan memastikan penggunaan yang adil. Contoh konfigurasi:

limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
server {
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
        proxy_pass http://backend;
    }
}

Mekanisme:

  • limit_req_zone: Menentukan zona dan laju memori bersama.
  • burstMemungkinkan lonjakan sementara yang terbatas.
  • nodelay: Langsung menegakkan batasan.

Konfigurasi ini memastikan setiap IP klien hanya dapat membuat 10 permintaan per detik sambil mengizinkan lonjakan permintaan singkat.


49) Apa saja contoh kasus penggunaan NGINX yang umum di lingkungan DevOps perusahaan?

Dalam ekosistem DevOps perusahaan, NGINX memainkan beberapa peran penting:

  1. Server Web: Pengiriman konten statis berkinerja tinggi.
  2. RevProxy/Load Balancer terbalik: Manajemen lalu lintas di seluruh layanan mikro.
  3. Gerbang API: Autentikasi, perutean, dan pembatasan kecepatan.
  4. Pengontrol Ingress: Untuk klaster Kubernetes.
  5. Lapisan Cache Konten: Mengurangi beban di sisi server.
  6. Titik Akhir Terminasi SSL: Manajemen sertifikat terpusat.
  7. Titik Akhir Pemantauan: Integrasi metrik dan observabilitas.

Ukuran yang ringan dan desain modularnya menjadikan NGINX sangat diperlukan dalam pipeline CI/CD, cloud hybrid, dan cluster dengan ketersediaan tinggi.


50) Apa perbedaan utama antara NGINX dan HAProxy untuk penyeimbangan beban?

Keduanya adalah load balancer berkinerja tinggi, tetapi keduanya berbeda dalam fokus dan arsitektur:

Fitur nginx HAProxy
Peran utama Server web + proksi terbalik Penyeimbang beban TCP/HTTP khusus
Kesederhanaan Konfigurasi Lebih mudah untuk beban kerja berbasis web Kontrol yang kompleks namun lebih terperinci.
Dukungan Lapisan L7 (HTTP), sebagian L4 L4 & L7 penuh
Konfigurasi Ulang Dinamis Terbatas (sumber terbuka) Pembaruan runtime asli
Performance Sangat cocok untuk beban kerja campuran Unggul untuk penyeimbangan beban mentah
Fitur Tambahan Penyimpanan cache, kompresi, konten statis Pemeriksaan kesehatan, meja pemeriksaan

Perusahaan sering menggabungkan NGINX (frontend) dan HAProxy (backend) untuk perutean dan skalabilitas yang optimal.


🔍 Pertanyaan Wawancara NGINX Teratas dengan Skenario Dunia Nyata & Jawaban Strategis

1) Apa itu NGINX, dan mengapa NGINX umum digunakan di lingkungan produksi?

Diharapkan dari kandidat: Pewawancara ingin menilai pengetahuan dasar Anda tentang NGINX dan pemahaman Anda tentang nilai praktisnya dalam sistem dunia nyata.

Contoh jawaban: “NGINX adalah server web dan reverse proxy berkinerja tinggi yang dikenal dengan arsitektur berbasis event-driven-nya. NGINX umum digunakan di lingkungan produksi karena dapat menangani sejumlah besar koneksi simultan secara efisien sambil mengonsumsi lebih sedikit sumber daya sistem dibandingkan server web tradisional.”


2) Bisakah Anda menjelaskan perbedaan antara NGINX dan Apache?

Diharapkan dari kandidat: Pewawancara sedang mengevaluasi kemampuan Anda untuk membandingkan teknologi dan memilih alat yang tepat berdasarkan kasus penggunaan.

Contoh jawaban: “NGINX menggunakan arsitektur asinkron dan non-blocking, yang membuatnya lebih efisien untuk menangani lalu lintas tinggi dan konten statis. Apache menggunakan model berbasis proses yang lebih fleksibel untuk konfigurasi dinamis tetapi dapat mengonsumsi lebih banyak sumber daya di bawah beban berat.”


3) Bagaimana NGINX bertindak sebagai reverse proxy?

Diharapkan dari kandidat: Pewawancara ingin memastikan pemahaman Anda tentang konsep reverse proxy dan bagaimana NGINX cocok dengan arsitektur modern.

Contoh jawaban: “NGINX bertindak sebagai reverse proxy dengan menerima permintaan klien dan meneruskannya ke server backend. Kemudian, NGINX mengembalikan respons server ke klien, yang meningkatkan keamanan, distribusi beban, dan kinerja secara keseluruhan.”


4) Jelaskan situasi di mana Anda menggunakan NGINX untuk penyeimbangan beban.

Diharapkan dari kandidat: Pewawancara mencari pengalaman langsung dan kemampuan Anda untuk menerapkan fitur NGINX dalam skenario nyata.

Contoh jawaban: “Dalam peran saya sebelumnya, saya mengkonfigurasi NGINX untuk mendistribusikan lalu lintas ke beberapa server aplikasi menggunakan algoritma round-robin dan least-connections. Pendekatan ini meningkatkan ketersediaan aplikasi dan mencegah satu server pun menjadi hambatan.”


5) Bagaimana cara Anda menangani konfigurasi SSL dan HTTPS di NGINX?

Diharapkan dari kandidat: Pewawancara ingin menilai pemahaman Anda tentang praktik terbaik keamanan dan manajemen konfigurasi.

Contoh jawaban: “Pada posisi sebelumnya, saya mengkonfigurasi SSL dengan memasang sertifikat, mengaktifkan listener HTTPS, dan menerapkan cipher suite yang kuat. Saya juga menerapkan pengalihan HTTP ke HTTPS untuk memastikan komunikasi yang aman di semua endpoint.”


6) Langkah-langkah apa yang akan Anda ambil untuk mengatasi kesalahan 502 Bad Gateway di NGINX?

Diharapkan dari kandidat: Pewawancara sedang menguji kemampuan Anda dalam memecahkan masalah dan metodologi penanganan kendala.

Contoh jawaban: “Saya akan mulai dengan memeriksa log kesalahan NGINX untuk mengidentifikasi masalah konektivitas backend. Kemudian saya akan memverifikasi bahwa server upstream berjalan, mengkonfirmasi pengaturan proxy yang benar, dan memastikan timeout dikonfigurasi dengan benar.”


7) Bagaimana Anda mengoptimalkan kinerja NGINX untuk aplikasi dengan trafik tinggi?

Diharapkan dari kandidat: Pewawancara ingin mengetahui bagaimana Anda mendekati penyempurnaan kinerja dan skalabilitas.

Contoh jawaban: “Di pekerjaan saya sebelumnya, saya mengoptimalkan NGINX dengan mengaktifkan kompresi gzip, menyetel proses worker, dan mengkonfigurasi caching untuk konten statis. Perubahan ini secara signifikan mengurangi waktu respons dan beban server.”


8) Bisakah Anda menjelaskan bagaimana NGINX menangani konten statis versus konten dinamis?

Diharapkan dari kandidat: Pewawancara sedang menilai pemahaman Anda tentang penanganan permintaan dan optimasi kinerja.

Contoh jawaban: “NGINX menyajikan konten statis secara langsung dan sangat efisien dari sistem file. Untuk konten dinamis, NGINX meneruskan permintaan ke server aplikasi atau layanan seperti PHP-FPM, sehingga setiap komponen dapat fokus pada hal yang paling mereka kuasai.”


9) Bagaimana Anda mengelola dan menguji perubahan konfigurasi NGINX dengan aman?

Diharapkan dari kandidat: Pewawancara ingin memahami pendekatan Anda terhadap keandalan dan pengurangan risiko.

Contoh jawaban: “Saya memvalidasi perubahan konfigurasi menggunakan perintah pengujian konfigurasi NGINX sebelum memuat ulang layanan. Saya juga menerapkan perubahan selama jendela pemeliharaan dan memantau log dengan cermat setelah penerapan.”


10) Jelaskan suatu waktu ketika Anda harus segera menyelesaikan gangguan yang terkait dengan NGINX.

Diharapkan dari kandidat: Pewawancara sedang mengevaluasi kemampuan Anda untuk berkinerja di bawah tekanan dan berkomunikasi secara efektif selama insiden.

Contoh jawaban: “Dalam peran saya sebelumnya, terjadi gangguan akibat kesalahan konfigurasi layanan hulu. Saya dengan cepat mengidentifikasi masalah tersebut melalui log, mengembalikan konfigurasi ke versi sebelumnya, dan mengkomunikasikan pembaruan status kepada para pemangku kepentingan hingga layanan sepenuhnya pulih.”

Ringkaslah postingan ini dengan: