Cara Setting SSI (Server Side Includes) di Nginx

Mengaktifkan Server Side Includes (SSI) di Nginx dilakukan dengan menambahkan direktif ssi on; ke dalam blok konfigurasi server atau lokasi. SSI memungkinkan Anda menyisipkan konten eksternal (seperti header, footer, atau tanggal) ke dalam file HTML secara dinamis saat halaman dimuat oleh server, tanpa memerlukan pemrosesan backend yang berat seperti PHP.

Secara default, Nginx menonaktifkan fitur ini untuk menghemat sumber daya I/O. Agar server dapat memproses tag seperti <!--#include virtual="/footer.html" -->, Anda harus mengonfigurasi beberapa parameter penting seperti ssi_types dan penanganan tipe konten.

Langkah Konfigurasi SSI di Blok Nginx

Buka file konfigurasi Nginx Anda (biasanya terletak di /etc/nginx/sites-available/default atau direktori blok server Anda), lalu tambahkan direktif SSI pada blok location atau server yang diinginkan.

server {
    listen 80;
    server_name contoh.com;
    root /var/www/html;

    index index.html index.htm;

    # Mengaktifkan SSI
    ssi on;
    
    # Menentukan tipe file yang memproses SSI (secara default hanya text/html)
    ssi_types text/html text/xml text/plain application/x-javascript;

    location / {
        try_files $uri $uri/ =404;
    }

    # Konfigurasi opsional untuk file dengan ekstensi tertentu
    location ~ \.shtml$ {
        ssi on;
        ssi_silent_errors on; # Mengabaikan error SSI agar tidak tampil di browser
    }
}

Direktif Penting SSI dalam Konfigurasi Nginx

Berikut adalah tabel parameter atau direktif pendukung yang sering digunakan saat mengatur SSI di Nginx:

Direktif Nginx Nilai Default Fungsi Utama
ssi off Mengaktifkan (on) atau menonaktifkan (off) pemrosesan SSI pada blok terkait.
ssi_types text/html Menentukan MIME types apa saja yang akan dipindai dan diproses tag SSI-nya.
ssi_silent_errors off Jika diatur on, error eksekusi SSI (seperti file tidak ditemukan) tidak akan memunculkan pesan teks error di halaman web.
ssi_value_length 256 Menentukan panjang maksimum parameter variabel di dalam tag SSI.

Langkah Penerapan dan Pengujian

  1. Simpan file konfigurasi Nginx yang telah diedit.
  2. Uji integritas sintaks konfigurasi menggunakan perintah terminal: sudo nginx -t
  3. Jika hasil pengujian bernilai sukses (syntax is ok, test is successful), muat ulang layanan Nginx dengan perintah: sudo systemctl reload nginx
  4. Buat file uji coba berformat HTML atau SHTML, lalu masukkan tag SSI dasar seperti <!--#echo var="DATE_LOCAL" --> untuk memastikan modul berjalan dengan baik.

Troubleshooting Masalah Umum SSI

Jika tag SSI yang Anda pasang tidak merespons atau hanya tampil sebagai teks mentah di browser, periksa beberapa hal berikut:

  • Lupa Reload Nginx: Perubahan konfigurasi tidak akan berdampak sebelum Anda menjalankan perintah systemctl reload nginx.
  • MIME Type Tidak Sesuai: Jika Anda menggunakan ekstensi selain .html (misalnya .shtml), pastikan ekstensi tersebut terdaftar di dalam ssi_types atau blok location khusus file tersebut.
  • Konflik dengan Reverse Proxy: Jika Nginx bertindak sebagai proxy di depan server lain, pastikan respons dari upstream tidak dikompresi (gzip) sebelum diproses oleh modul SSI Nginx, atau gunakan modul gunzip jika diperlukan.