Tuning PHP-FPM
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
; pm.max_requests = 500
Sesuaikan angka dengan vCPU/RAM. Pantau pakai htop atau systemctl status php8.1-fpm.
FastCGI Cache
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WP:50m inactive=60m max_size=1g;
map $request_method $purge_method { default 0; PURGE 1; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_cache WP;
fastcgi_cache_key $scheme$request_method$host$request_uri;
add_header X-Cache $upstream_cache_status;
}
Untuk halaman login/cart, tambahkan fastcgi_no_cache.
Gzip & Brotli
gzip on; gzip_comp_level 5; gzip_min_length 256;
gzip_types text/plain text/css application/json application/javascript application/xml image/svg+xml;
# Brotli kalau modul tersedia
# brotli on; brotli_comp_level 5; brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Security Headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=()";
CDN & Static
- Aktifkan Cloudflare/Cache CDN untuk aset statis.
- Set long cache untuk
.css .js .woff2 .webp. - Gunakan image optimization (WebP/AVIF) untuk skor LCP lebih baik.
FAQ
Perlu plugin cache di WordPress?
Dengan FastCGI cache di Nginx, plugin cache bisa diminimalkan. Tetap berguna untuk minify/merge & purge otomatis.
Berapa resource VPS ideal?
Mulai 2 vCPU / 2GB RAM untuk situs bisnis. Naikkan sesuai traffic. Lihat paket VPS Singapore dan VPS Indonesia KVM.
Kesimpulan
Optimasi sisi server = TTFB rendah + stabil. Setelah ini, amankan domain/SSL: baca Cloudflare + SSL di aaPanel. Butuh upgrade? Pilih VPS yang kencang.