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
- Simpan file konfigurasi Nginx yang telah diedit.
- Uji integritas sintaks konfigurasi menggunakan perintah terminal:
sudo nginx -t - Jika hasil pengujian bernilai sukses (syntax is ok, test is successful), muat ulang layanan Nginx dengan perintah:
sudo systemctl reload nginx - 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 dalamssi_typesatau 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.