Konfigurasi Nginx FastCGI Cache untuk Mempercepat WordPress di VPS

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:

  1. 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.
  2. 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.
  3. 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

  1. 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/wordpress
    

    Penjelasan :

    • mkdir -p : membuat folder cache.
    • chown : memberikan hak baca/tulis ke Nginx.
    • chmod 755 : memberi permission yang aman.
  2. 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.
  3. 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).

Menerapkan FastCGI Cache ke Virtual Host

  1. 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
      

Menguji FastCGI Cache

  1. Gunakan cURL:
    curl -I https://domain-anda.com
    

    Output :

    Penjelasan: Awalnya request akan MISS karena cache belum tersedia, kemudian request berikutnya akan menjadi HIT karena diambil langsung dari cache.
  2. 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.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466