Nginx adalah web server open-source yang digunakan oleh lebih dari 34% website di dunia. Dalam panduan ini, kita akan membahas installasi Nginx di Ubuntu 24.04, konfigurasi virtual host, setup SSL dengan Let's Encrypt, dan optimasi performa untuk production.
Kenapa Nginx?
- Performa tinggi — event-driven architecture yang sangat efisien untuk concurrent connections
- Reverse proxy — proxy ke aplikasi Node.js, Python, Go, atau Docker containers
- Load balancer — distribusi traffic ke beberapa backend server
- Static file serving — serve gambar, CSS, JS dengan caching yang optimal
- Ecosystem besar — banyak module dan dokumentasi lengkap
Installasi Nginx
# Update package list
sudo apt update
# Install Nginx
sudo apt install nginx -y
# Cek status
sudo systemctl status nginx
# Buka di browser
curl -I http://localhost
Nginx akan otomatis mulai setelah installasi. Port 80 akan digunakan untuk HTTP.
Struktur Direktori
/etc/nginx/nginx.conf— config utama/etc/nginx/sites-available/— konfigurasi virtual host/etc/nginx/sites-enabled/— symlink ke config yang aktif/var/log/nginx/— log files/var/www/html/— default web root
Konfigurasi Virtual Host
Buat config baru untuk domain Anda:
# Buat file config
sudo nano /etc/nginx/sites-available/mysite.conf
# Isi konfigurasi:
server {
listen 80;
server_name mysite.com www.mysite.com;
root /var/www/mysite;
index index.html;
# Logging
access_log /var/log/nginx/mysite-access.log;
error_log /var/log/nginx/mysite-error.log;
# Location blocks
location / {
try_files $uri $uri/ =404;
}
# Cache static assets
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
# Gzip compression
gzip on;
gzip_types text/plain text/css application/json application/javascript;
}
# Aktifkan config
sudo ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/
# Hapus default config (opsional)
sudo rm /etc/nginx/sites-enabled/default
# Test config
sudo nginx -t
# Reload Nginx
sudo systemctl reload nginx
Setup SSL dengan Let's Encrypt
SSL gratis dengan Certbot:
# Install Certbot
sudo apt install certbot python3-certbot-nginx -y
# Dapatkan sertifikat
sudo certbot --nginx -d mysite.com -d www.mysite.com
# Auto-renewal (sudah di-setup otomatis)
sudo certbot renew --dry-run
Optimasi Performa
- Worker processes — set ke jumlah CPU cores:
worker_processes auto; - Worker connections — tingkatkan:
worker_connections 4096; - Keepalive — kurangi overhead TCP:
keepalive_timeout 65; - Buffer sizes — optimasi berdasarkan traffic:
client_body_buffer_size 16k;
Nginx vs Caddy
Nginx lebih powerful untuk konfigurasi kompleks, tapi Caddy lebih simpel untuk reverse proxy. Untuk panduan lengkap Caddy, baca Caddy reverse proxy auto-HTTPS. Jika ingin memahami perbandingan lengkapnya, lihat Caddy vs Nginx di 2026.