Tutorial

Tutorial Install Nginx di Ubuntu 24.04: Konfigurasi Lengkap

Tutorial Install Nginx di Ubuntu 24.04: Konfigurasi Lengkap

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.