Script Nginx Optimal untuk Laravel: Panduan Lengkap
Zachran Razendra
Author
Script Nginx Optimal untuk Laravel
Pendahuluan Laravel memerlukan konfigurasi server yang tepat agar performa optimal dan keamanan terjaga. Berikut ini contoh konfigurasi Nginx yang disesuaikan untuk aplikasi Laravel versi terbaru.
1. Persyaratan Awal
- Nginx >= 1.14
- PHP-FPM (versi 8.x direkomendasikan)
- Direktori proyek Laravel berada di
/var/www/html/laravel - Hak akses folder
storagedanbootstrap/cachesudah diset dengan benar.
2. Contoh File Konfigurasi Nginx
Buat atau edit file virtual host di /etc/nginx/sites-available/laravel.conf:
server {
listen 80;
server_name example.com www.example.com; # Ganti dengan domain Anda
root /var/www/html/laravel/public; # Path ke folder public Laravel
index index.php index.html;
charset utf-8;
gzip on;
gzip_types text/css application/javascript image/svg+xml;
# Mengatur log
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Membatasi akses ke file .env dan folder storage yang tidak perlu diakses publik
location ~ /\.(?!well-known).* {
deny all;
}
# Mengarahkan semua request ke index.php kecuali file atau folder yang ada
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM configuration
location ~ \\.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; # Sesuaikan versi PHP
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
}
# Cache static assets for 30 days
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|webp)$ {
expires 30d;
add_header Cache-Control "public, max-age=2592000";
}
# Deny access to storage symlink if you expose it
location ^~ /storage/ {
internal;
alias /var/www/html/laravel/storage/app/public/;
}
}
3. Langkah Aktivasi
- Simpan file di atas sebagai
laravel.conf. - Aktifkan situs dengan membuat symlink:
sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/ - Uji konfigurasi Nginx:
sudo nginx -t - Reload Nginx:
sudo systemctl reload nginx
4. Tips Tambahan
- SSL: Pasang sertifikat SSL (Let’s Encrypt) dan ubah
listen 80;menjadilisten 443 ssl;serta tambahkanssl_certificatedanssl_certificate_key. - Optimasi PHP-FPM: Sesuaikan
pm.max_children,pm.start_servers, danpm.max_requestsdi filewww.confsesuai beban. - Cache: Pertimbangkan menggunakan
fastcgi_cacheatau layanan cache terpisah seperti Redis untuk meningkatkan kecepatan.
5. Kesimpulan
Dengan konfigurasi di atas, aplikasi Laravel Anda akan berjalan secara stabil di Nginx, memanfaatkan caching statis, keamanan dasar, dan performa PHP‑FPM yang optimal. Selalu lakukan testing setelah perubahan dan monitor log untuk mendeteksi masalah potensial.