Cara Konfigurasi Nginx Cache untuk Mempercepat Website

Apa itu Nginx Cache ?

Nginx Cache adalah fitur bawaan Nginx yang berfungsi sebagai penyimpanan sementara untuk respons yang telah diproses oleh server. Dengan Nginx Cache, permintaan yang sama dapat langsung dilayani tanpa harus diteruskan ke backend berulang kali, sehingga meningkatkan kecepatan akses dan mengurangi beban server.

Beberapa Jenis Caching di Nginx:

  • FastCGI Cache – Menyimpan respons dari PHP-FPM.
  • Proxy Cache – Menyimpan respons dari server upstream (Misalnya Nginx jadi Reverse Proxy).
  • Microcaching – Versi caching berumur pendek untuk meningkatkan performa konten dinamis.
  • Static File Cache – Mengatur cache file statis di browser pengguna (HTML, CSS, JS)

Overview

A content cache sits in between a client and an “origin server”, and saves copies of all the content it sees. If a client requests content that the cache has stored, it returns the content directly without contacting the origin server.

– Nginx.org

Persiapan Sebelum Konfigurasi

Sebelum mulai konfigurasi Nginx Cache, ada beberapa hal yang perlu disiapkan, di antaranya menyiapkan perangkat Linux dan Koneksi Internet. Di sini Kami menggunakan Server VPS bersistem operasi Linux Ubuntu untuk mengonfigurasi Nginx Cachenya.

Spesifikasi VPS yang Kami Gunakan

  • Linux Ubuntu 24.04
  • 1 Core
  • 1 GB RAM
  • 20 GB Disk

Konfigurasi Nginx FastCGI Cache untuk Mempercepat WordPress

Nginx FastCGI Cache adalah caching yang digunakan untuk menyimpan respons dari PHP-FPM, sehingga permintaan yang sama dapat dilayani langsung dari cache tanpa perlu memproses ulang skrip PHP. Jenis cache ini cocok digunakan untuk web-web seperti WordPress, Laravel, Yii2, Code Igniter, dan web PHP lainya.

Langkah Utama

  • Membuat Direktori Tempat Menyimpan Cache
  • Membuat Konfigurasi Zona Cache
  • Membuat Konfigurasi Aturan Cache dan Pengecualian
  • Menerapkan ke Virtualhost

Peta Pengetahuan

  • Direktori Tempat Menyimpan Cache = /var/cache/nginx/wordpress01
  • Tempat Zona Cache Didefinisikan = /etc/nginx/conf.d/fastcgi_cache_pool.conf
  • Tempat Aturan Cache Didefinisikan = dokumen root web(misal,/var/www/wordpress01/fastcgi_cache.conf )

Baca Juga : Cara Mengetahui IP Asli Pengunjung di Website yang Menggunakan Proxy Cloudflare

Langkah #1: Membuat Direktori Tempat Menyimpan Cache

Seperti yang sudah kami jelaskan sebelumnya, cache akan disimpan di storage. Untuk itu, pertama kita perlu membuat direktori sebagai media penyimpanan cache. Kemudian, ubah owner direktori tersebut ke www-data agar bisa dibaca dan ditulis oleh Nginx. Atur juga permission-nya menjadi 700. Direktori cache akan dibuat di /var/cache/nginx.

sudo mkdir -p /var/cache/nginx/wordpress01/

Kemudian ubah permission dan owner direktorinya ke 755 dan www-data

sudo chown www-data:www-data /var/cache/nginx/wordpress01/
sudo chmod 755 /var/cache/nginx/wordpress01/

Langkah #2: Membuat Konfigurasi Zona Cache

Zona cache adalah area penyimpanan yang digunakan untuk menyimpan data yang di-cache. Zona cache ini berfungsi untuk menyimpan salinan dari hasil pemrosesan request, sehingga Nginx dapat menyajikan data tersebut lebih cepat ketika ada request yang sama.

Buat file baru untuk menyimpan konfigurasi zona cache

sudo nano /etc/nginx/conf.d/fastcgi_cache_pool.conf

Kemudian salin dan tempel kode baris berikut ini:

# Zona Cache WordPress01
fastcgi_cache_path /var/cache/nginx/wordpress01 levels=1:2
keys_zone=wordpress01:10m max_size=512m inactive=30m;

Keterangan

  • Konfigurasi di atas akan membuat zona cache dengan nama wordpress01 dan menyimpan file cache ke direktori /var/cache/nginx/wordpress01. Zona cache ini menyimpan metadata cache sebesar 10 MB, sementara ukuran maksimal file cache bisa disimpan sebesar 512 MB. Jika suatu objek cache tidak diakses selama 30 menit, maka objek tersebut akan dihapus secara otomatis.

Langkah #3: Membuat Konfigurasi Aturan Cache

Setelah membuat zona cache, langkah selanjutnya adalah membuat file konfigurasi yang berisi aturan-aturan cache bekerja dan pengecualian apa saja yang tidak boleh dicache. Konfigurasi ini akan diletakkan di /var/www/domain-web dengan tujuan agar lebih terstruktur dan mudah dikelola.

sudo nano /var/www/wordpress01/fastcgi_cache.conf

Kemudian masukkan konfigurasi FastCGI Cache berikut. Konfigurasi di bawah ini sudah mencakup aturan cache, header, dan pengecualian halaman yang tidak dicache, seperti halaman login atau halaman keranjang belanja.

# Aturan Cache
fastcgi_cache         wordpress01;  # Disesuaikan dengan zona cache
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;

# Aturan Bypass Jika User login WordPress atau WooCommerce
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;
}

# Aturan Bypass untuk Halaman Admin dan Endpoint WooCommerce
if ($request_uri ~* "/wp-admin/|/wp-json/|wp-.*.php|xmlrpc.php|index.php|/store.*|/cart.*|/my-account.*|/checkout.*") {
    set $no_cache 1;
}

Langkah #3: Menerapkan FastCGI Cache ke Virtualhost Nginx

Sekarang kita akan menerapkan konfigurasi fastcgi cache yang telah dibuat ke virtual host Nginx. Perlu diperhatikan untuk menerapkan konfigurasi cache ini Anda harus sudah memiliki web yang telah berjalan. Kami sendiri sudah memiliki sebuah web wordpress yang sudah berjalan, dan akan kami terapkan konfigurasi fastcgi cache ini ke dalam virtualhostnya.

Edit virtualhost website yang akan diterapkan fastcgi cache.

sudo nano /etc/nginx/sites-enabled/example.com

Salin baris berikut dan tempel ke dalam baris block location ~ \.php$ {}. Baris ini akan memanggil aturan cache yang tadi sudah Kita buat.

# Menerapkan Aturan Cache ke Virtualhost
include /var/www/wordpress/fastcgi_cache.conf;

Lihat gambar di bawah ini sebagai contoh:

Menerapkan Aturan Cache ke Virtualhost
Menerapkan Aturan Cache ke Virtualhost

Terakhir verifikasi dan restart service nginx.

sudo nginx -t
sudo systemctl restart nginx

Langkah #4: Menguji Cache

Untuk tahap pengujian ini Kita akan menggunakan 2 metode, yaitu menggunakan cURL dan Apache Benchmark. cURL digunakan untuk memeriksa cache dengan melihat header HTTP yang dikembalikan oleh server. Sedangkan Apache Benchmark (ab) digunakan untuk mengukur performa dan melihat perbedaan kecepatan sebelum dan sesudah cache diaktifkan.

Gunakan perintah berikut untuk mengecek status cache pada website:

curl -I https://example.com

Perhatikan pada bagian X-Cache apakah terdapat salah satu dari status berikut:

  • HIT : Cache berhasil digunakan
  • MISS : Cache belum tersedia atau baru dibuat
  • BYPASS : Cache diabaikan atau tidak digunakan

Contoh gambar di bawah ini jika cache berhasil dibuat (HIT)

Cache Berhasil
Cache Berhasil

Kita coba untuk tes cURL ke wp-admin, Jika aturan cache berhasil, respon cache harusnya Bypass. Krena wp-admin tidak boleh dicache.

Bypass Cache Berhasil
Bypass Cache Berhasil

Penutup

Menggunakan FastCGI Cache di Nginx adalah cara efektif untuk mempercepat WordPress dengan mengurangi beban server dan waktu muat halaman. Dengan konfigurasi yang tepat, website Anda akan lebih responsif dan efisien.

Pastikan untuk menguji cache, menyesuaikan aturan sesuai kebutuhan, serta membersihkan cache secara berkala agar tidak menampilkan konten usang. Dengan langkah ini, performa WordPress Anda akan tetap optimal. 🚀

Suka Menulis

You might also like
Cara Konfigurasi Rate Limit di Nginx Untuk Mencegah DDOS

Cara Konfigurasi Rate Limit di Nginx Untuk Mencegah DDOS

Cara Mengamankan WordPress: Menyembunyikan versi WordPress

Cara Mengamankan WordPress: Menyembunyikan versi WordPress

Cara Mengamankan Website: Blokir Akses Langsung ke IP Publik Server

Cara Mengamankan Website: Blokir Akses Langsung ke IP Publik Server

Menampilkan IP Asli Visitor Web yang Menggunakan Cloudflare

Menampilkan IP Asli Visitor Web yang Menggunakan Cloudflare

Panduan Lengkap Cara Migrasi WordPress dari VPS ke VPS Baru

Panduan Lengkap Cara Migrasi WordPress dari VPS ke VPS Baru

Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)

Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)

Pesan dengan Border Radius

Informasi


Saya bisa membantu instalasi Server seperti: LAMP atau LEMP Stack, Control Panel VPS, Instalasi WebApp, Mail Server, atau sekedar tanya tutorial di web ini. Untuk itu, silahkan hubungi saya melalui kontak yang telah tersedia.

OrangeVPS VPS Murah
Most Populer
Cara Install Armbian Linux 25.05.0 di STB HG680P
Review dan Bencmark STB HG680P Armbian Linux 24.11
Cara Mengaktifkan WiFi di Armbian STB HG680P
Apa Itu Armbian ? Penjelasan Lengkap Armbian Linux Ubuntu Debian Based
Cara Konfigurasi IP Statis Armbian Linux 24.10 di STB HG680P