Bab 3: Struktur File dan Direktori Nginx – Panduan Lengkap untuk Pemula

Bab 3: Struktur File dan Direktori Nginx – Panduan Lengkap untuk Pemula

Pelajari struktur file dan direktori Nginx secara lengkap. Termasuk file konfigurasi utama, sites-available, sites-enabled, conf.d, log file, dan modul Nginx. Cocok untuk pemula dan profesional web.

1. File Konfigurasi Utama: /etc/nginx/nginx.conf

File nginx.conf adalah file konfigurasi utama Nginx. Semua pengaturan global, seperti user, worker processes, logging, dan modules berada di sini.

Contoh Struktur Dasar nginx.conf:

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

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

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

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

💡 Tips:

  • Jangan langsung mengedit file ini untuk setiap virtual host, gunakan sites-available untuk konfigurasi per-domain.
  • Setelah mengubah konfigurasi, selalu tes dengan:
sudo nginx -t
sudo systemctl reload nginx

2. Direktori sites-available dan sites-enabled

Nginx menggunakan struktur modular untuk virtual host:

  • sites-available/ → Tempat menyimpan konfigurasi virtual host yang tersedia.
  • sites-enabled/ → Hanya berisi symlink ke konfigurasi di sites-available yang ingin diaktifkan.

Contoh:

/etc/nginx/sites-available/example.com
/etc/nginx/sites-enabled/example.com -> ../sites-available/example.com

💡 Tips SEO:

  • Memisahkan konfigurasi ini memudahkan manajemen banyak domain.
  • Aktifkan site dengan perintah:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl reload nginx

3. Direktori conf.d

Direktori conf.d/ digunakan untuk konfigurasi tambahan yang bersifat modular, misal:

  • Redirect HTTP ke HTTPS
  • Load balancing
  • Proxy pass untuk aplikasi backend

File di dalam conf.d biasanya berakhiran .conf dan otomatis dimuat oleh Nginx saat startup.


4. Log File Nginx: access.log dan error.log

Nginx mencatat aktivitas server di log file, sangat berguna untuk monitoring dan troubleshooting.

Log FileFungsi
/var/log/nginx/access.logMencatat semua request dari pengguna (IP, URL, status code)
/var/log/nginx/error.logMencatat error saat server atau aplikasi gagal merespon

💡 Tips:

  • Gunakan log rotation agar file log tidak membengkak.
  • Analisis access log untuk melihat pola trafik dan mendeteksi serangan.

5. Modul Nginx

Nginx dibangun modular, memungkinkan menambahkan fungsionalitas sesuai kebutuhan. Modul utama Nginx dibagi menjadi:

  1. Core Module: Fungsi dasar server, seperti manajemen proses, koneksi, dan logging.
  2. HTTP Module: Mendukung HTTP server, reverse proxy, caching, compression, dan virtual host.
  3. Mail Module: Mendukung protokol mail (SMTP, IMAP, POP3) sebagai proxy mail.
  4. Stream Module: Mendukung TCP/UDP proxy, load balancing untuk aplikasi non-HTTP.

💡 Tips SEO:

  • Modul HTTP adalah yang paling sering digunakan untuk website dan aplikasi web.
  • Modul tambahan bisa dikompilasi secara custom sesuai kebutuhan.

Kesimpulan

Struktur file dan direktori Nginx sangat modular dan terorganisir:

  • nginx.conf → konfigurasi global
  • sites-available & sites-enabled → konfigurasi virtual host per-domain
  • conf.d → konfigurasi tambahan/modular
  • access.log & error.log → monitoring dan troubleshooting
  • Modul Nginx → menambah fungsionalitas sesuai kebutuhan

Memahami struktur ini adalah langkah penting sebelum mulai konfigurasi virtual host, reverse proxy, atau load balancing.