Nginx Server Side Includes (SSI) menyediakan serangkaian variabel bawaan yang dapat digunakan untuk menyisipkan informasi dinamis ke dalam dokumen web secara langsung di tingkat server. Variabel-variabel ini mencakup informasi tentang waktu saat ini, permintaan HTTP klien, hingga struktur path file yang sedang diproses tanpa memerlukan eksekusi bahasa skrip eksternal seperti PHP atau Python.
Untuk mengaktifkan penggunaan variabel ini, modul ngx_http_ssi_module harus diaktifkan pada konfigurasi Nginx Anda, dan direktif ssi on; harus disetel di dalam blok server atau location yang relevan.
Daftar Nginx SSI Variables Utama
Berikut adalah tabel variabel SSI resmi yang didukung secara native oleh Nginx beserta fungsi dan contoh keluarannya:
| Nama Variabel SSI | Fungsi / Deskripsi | Contoh Output |
|---|---|---|
$date_local |
Menampilkan tanggal dan waktu lokal saat ini berdasarkan zona waktu server. | Friday, 06-Jun-2025 14:30:22 UTC |
$date_gmt |
Menampilkan tanggal dan waktu saat ini berdasarkan standar waktu GMT (Greenwich Mean Time). | Fri, 06 Jun 2025 14:30:22 GMT |
$document_name |
Menampilkan nama file dokumen atau skrip yang sedang diakses saat ini. | index.html |
$file_name |
Menampilkan jalur absolut dari file yang sedang diproses oleh SSI. | /var/www/html/index.html |
$query_string |
Menampilkan seluruh query string yang dikirimkan melalui URL permintaan. | id=123&user=admin |
$remote_addr |
Menampilkan alamat IP dari klien atau pengunjung yang mengakses server. | 192.168.1.50 |
$document_uri / $uri |
Menampilkan URI relatif dari permintaan saat ini tanpa menyertakan query string. | /pages/contact.html |
Contoh Implementasi Kode SSI di Nginx
Untuk menampilkan variabel SSI di dalam file HTML, gunakan sintaks tag . Pastikan ekstensi file Anda diizinkan untuk diproses oleh modul SSI jika Anda tidak menggunakan pemetaan khusus.
<!-- Konfigurasi Nginx (nginx.conf) -->
server {
listen 80;
server_name contoh.lokal;
root /var/www/html;
location / {
ssi on;
ssi_types text/html;
}
}
<!-- Contoh Penggunaan di dalam File HTML -->
<html>
<head>
<title>Halaman Dinamis SSI</title>
</head>
<body>
<h1>Selamat Datang di Situs Kami</h1>
<p>Alamat IP Anda adalah: <!--# echo var="remote_addr" --></p>
<p>Halaman ini diakses pada: <!--# echo var="date_local" --></p>
<p>Nama file saat ini: <!--# echo var="document_name" --></p>
</body>
</html>
Tips Konfigurasi dan Troubleshooting Lapangan
Jika variabel SSI tidak muncul atau hanya menampilkan teks kosong pada halaman web, periksa beberapa hal teknis berikut:
- Direktif
ssi_types: Secara default, Nginx hanya memproses SSI pada tipe kontentext/html. Jika Anda menggunakan file dengan ekstensi lain atau tipe MIME kustom, pastikan untuk menambahkannya melaluissi_typesdi blok konfigurasi. - Ukuran Buffer: Jika Anda melakukan penyisipan file besar menggunakan perintah
<!--# include virtual="..." -->, sesuaikan ukuran buffer dengan parameterssi_buffer_size(default umumnya 256k atau 512k) untuk menghindari errorSSI stub response. - Kompatibilitas Cache: SSI mengeksekusi konten secara dinamis di server, sehingga pastikan modul caching seperti FastCGI cache atau Proxy cache dikonfigurasi dengan benar agar tidak menyajikan data kedaluwarsa kepada pengguna.