Konfigurasi Nginx FastCGI Cache untuk Mempercepat WordPress di VPS
Pengantar
Jika Anda menjalankan website WordPress di VPS, performa dan kecepatan loading halaman adalah hal penting untuk pengalaman pengunjung dan SEO. Salah satu cara untuk mempercepat WordPress adalah dengan menggunakan Nginx FastCGI Cache.
FastCGI Cache adalah fitur di Nginx yang menyimpan hasil proses PHP-FPM ke cache sementara. Dengan begitu, request berikutnya tidak perlu memproses skrip PHP berulang kali, sehingga website lebih cepat dan server tidak terbebani.
Manfaat menggunakan FastCGI Cache antara lain:
- Mengurangi waktu loading halaman WordPress.
- Menurunkan penggunaan CPU dan RAM server.
- Mengoptimalkan performa website saat trafik tinggi.
Persiapan Sebelum Konfigurasi
Sebelum memulai, pastikan Anda sudah menyiapkan:
- VPS dengan sistem operasi Ubuntu 22.04 / 24.04.
- Nginx, PHP-FPM, dan WordPress sudah terinstall dan berjalan.
- Akses root atau user dengan hak sudo.
- Domain yang sudah diarahkan ke VPS.
Direktori dan Fungsinya
Dalam konfigurasi FastCGI Cache, ada beberapa direktori penting:
- Direktori Cache Nginx
- Contoh: /var/cache/nginx/wordpress
- Fungsi: Menyimpan file hasil cache dari PHP-FPM.
- Catatan: Harus dimiliki oleh www-data agar Nginx bisa menulis dan membaca.
- Direktori Konfigurasi Zona Cache
- Contoh: /etc/nginx/conf.d/fastcgi_cache_pool.conf
- Fungsi: Menyimpan pengaturan zona cache, ukuran maksimal cache, dan metadata.
- Catatan: Zona cache menentukan bagaimana Nginx mengelola file cache.
- Direktori Konfigurasi Aturan Cache
- Contoh: /var/www/wordpress/fastcgi_cache.conf
- Fungsi: Berisi aturan cache, pengecualian, dan kondisi bypass cache untuk halaman tertentu.
- Catatan: Memisahkan aturan cache dari virtual host mempermudah pengelolaan dan backup.
Membuat Direktori Cache
- Buat folder cache Nginx:
sudo mkdir -p /var/cache/nginx/wordpress sudo chown www-data:www-data /var/cache/nginx/wordpress sudo chmod 755 /var/cache/nginx/wordpressPenjelasan :
- mkdir -p : membuat folder cache.
- chown : memberikan hak baca/tulis ke Nginx.
- chmod 755 : memberi permission yang aman.
- Membuat Zona Cache
- Buat file konfigurasi zona cache:
sudo nano /etc/nginx/conf.d/fastcgi_cache_pool.conf - Masukkan perintah berikut :
fastcgi_cache_path /var/cache/nginx/wordpress levels=1:2 keys_zone=wordpress:10m max_size=512m inactive=30m;Keterangan:
- keys_zone=wordpress:10m : metadata cache 10 MB.
- max_size=512m : ukuran maksimal file cache.
- inactive=30m : cache yang tidak diakses selama 30 menit akan dihapus.
- Buat file konfigurasi zona cache:
- Membuat Aturan FastCGI Cache
- Buat file aturan cache:
sudo nano /var/www/wordpress/fastcgi_cache.conf - Masukkan perintah berikut :
fastcgi_cache wordpress; fastcgi_cache_valid 200 2m; fastcgi_cache_valid 301 302 10m; fastcgi_cache_valid 404 10m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; fastcgi_cache_bypass $no_cache; fastcgi_no_cache $no_cache; set $no_cache 0; add_header X-FastCGI-Cache $upstream_cache_status; # Bypass halaman login, keranjang, dan checkout if ($http_cookie ~* "wordpress_logged_in|SESS|comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|woocommerce_items_in_cart|woocommerce_cart_hash|PHPSESSID") { set $no_cache 1; } if ($request_uri ~* "/wp-admin/|/wp-json/|wp-.*.php|xmlrpc.php|index.php|/cart.*|/checkout.*") { set $no_cache 1; }Penjelasan:
- $no_cache : menentukan halaman mana yang tidak boleh dicache.
- X-FastCGI-Cache : header untuk mengecek status cache (HIT, MISS, BYPASS).
- Buat file aturan cache:
Menerapkan FastCGI Cache ke Virtual Host
- Edit virtual host:
- Gunakan perintah berikut :
sudo nano /etc/nginx/sites-enabled/wordpress.conf - Di dalam blok location ~ \.php$ {} tambahkan:
include /var/www/wordpress/fastcgi_cache.conf; - Cek konfigurasi dan restart Nginx:
sudo nginx -t sudo systemctl restart nginx
- Gunakan perintah berikut :
Menguji FastCGI Cache
- Gunakan cURL:
curl -I https://domain-anda.comOutput :

Penjelasan: Awalnya request akan MISS karena cache belum tersedia, kemudian request berikutnya akan menjadi HIT karena diambil langsung dari cache.
-
Gunakan cURL Login
curl -I https://domain-anda.com/wp-admin
Penjelasan: BYPASS berarti cache sengaja dilewati karena halaman tertentu tidak boleh dicache dan harus diproses langsung oleh server.
Tips & Best Practice
- Jangan cache halaman login, checkout, keranjang, atau admin.
- Pastikan PHP-FPM di-tune untuk jumlah worker sesuai spesifikasi server.
- Gunakan Redis Object Cache untuk mempercepat query database.
- Bersihkan cache setelah update konten besar.
Kesimpulan
FastCGI Cache di Nginx membantu WordPress lebih cepat dengan menyimpan hasil PHP-FPM sementara. Memahami fungsi setiap direktori cache akan membuat pengelolaan lebih mudah dan aman. Setelah konfigurasi, website akan lebih responsif, penggunaan server lebih ringan, dan pengalaman pengunjung lebih baik.


