Bagaimana cara menulis Varnish vcl?

Jan 13, 2026

Tinggalkan pesan

Grace Taylor
Grace Taylor
Grace adalah peninjau produk kimia independen. Dia sering mengevaluasi bahan baku kimia dari Jiangmen Chuangda New Material Technology Co., Ltd. Tinjauan tujuan dan profesionalnya telah memberikan referensi yang berharga bagi banyak pelanggan di industri ini.

Hai! Sebagai pemasok Varnish, saya telah melihat secara langsung betapa pentingnya menulis kode Varnish Configuration Language (VCL) yang efektif. Pada postingan blog kali ini, saya akan membagikan beberapa tips dan trik bagaimana menulis VCL seperti seorang profesional.

Memahami Dasar-Dasar VCL

Hal pertama yang pertama, mari kita bahas tentang apa itu VCL. Varnish adalah akselerator aplikasi web (juga dikenal sebagai cache) yang berada di depan server web Anda. VCL adalah bahasa pemrograman yang digunakan untuk mengkonfigurasi Varnish. Hal ini memungkinkan Anda untuk mengontrol bagaimana Varnish berperilaku, seperti permintaan apa yang harus di-cache, berapa lama untuk melakukan cache, dan apa yang harus dilakukan ketika terjadi kehilangan cache.

Kode VCL disusun menjadi subrutin, seperti fungsi dalam bahasa pemrograman lainnya. Setiap subrutin memiliki tujuan tertentu, dan Varnish memanggil subrutin ini pada tahapan berbeda dalam proses permintaan dan respons. Beberapa subrutin yang paling penting meliputivcl_recv,vcl_hash,vcl_backend_fetch, Danvcl_deliver.

Dimulai dengan Konfigurasi VCL Sederhana

Saat Anda baru memulai dengan VCL, ada baiknya memulai dengan konfigurasi sederhana. Berikut ini contoh file VCL dasar:

3 Water Based Matte Top Coat LeatherWater Based Matte Top Coat

vcl 4.0; ujung belakang default { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { kembali (lulus); } sub vcl_backend_response { kembali (kirim); } sub vcl_deliver { kembali (mengirimkan); }

Dalam contoh ini, kami mendefinisikan server backend di127.0.0.1:8080. Ituvcl_recvsubrutin dipanggil ketika Varnish menerima permintaan klien. Dalam hal ini, kami cukup meneruskan permintaan ke server backend tanpa menyimpannya dalam cache. Ituvcl_backend_responsesubrutin dipanggil ketika Varnish menerima respons dari server backend, dan kami mengirimkan respons tersebut ke klien. Ituvcl_deliversubrutin juga digunakan untuk menyampaikan respons kepada klien.

Strategi Caching

Salah satu alasan utama menggunakan Varnish adalah untuk menyimpan konten dalam cache dan mengurangi beban pada server backend Anda. Ada beberapa strategi caching yang dapat Anda gunakan di VCL, bergantung pada kebutuhan aplikasi Anda.

Menyimpan Konten Statis dalam cache

Konten statis, seperti gambar, file CSS, dan file JavaScript, adalah kandidat yang bagus untuk disimpan dalam cache. Anda dapat mengonfigurasi Varnish untuk menyimpan file-file ini dalam cache untuk waktu yang lama. Berikut ini contoh cara menyimpan konten statis dalam cache:

sub vcl_recv { if (req.url ~ "\.(jpg|jpeg|png|gif|css|js)$") { return (hash); } kembali (lulus); }

Dalam contoh ini, jika URL permintaan diakhiri dengan.jpg,.jpeg,.png,.gif,.css, atau.js, kami mengirimkan permintaan kevcl_hashsubrutin yang akan di-cache. Jika tidak, kami meneruskan permintaan ke server backend.

Menyimpan Konten Dinamis dalam cache

Menyimpan konten dinamis dalam cache bisa menjadi sedikit lebih rumit, karena Anda perlu memastikan bahwa konten yang di-cache masih valid. Anda dapat menggunakan teknik seperti tag cache dan kunci pengganti untuk mengelola cache untuk konten dinamis. Berikut ini contoh cara menggunakan tag cache:

sub vcl_backend_response { if (beresp.http.X-Cache-Tag) { setel beresp.http.X-Cache-Tags = beresp.http.X-Cache-Tag; } kembali (mengirimkan); } sub vcl_purge { if (req.http.X-Cache-Tags) { ban("obj.http.X-Cache-Tags ~ " + req.http.X-Cache-Tags); } return (synth(200, "Dibersihkan")); }

Dalam contoh ini, ketika server backend menyetelX-Cache-Tagheader, kami menyalinnya keX-Cache-Tagheader dalam respons Varnish. Ketika permintaan pembersihan datang bersamaX-Cache-Tagheader, kami melarang semua objek yang cocok dengan tag cache.

Menangani Cache yang Hilang

Jika terjadi kehilangan cache, Varnish perlu mengambil konten dari server backend. Anda dapat menggunakanvcl_backend_fetchsubrutin untuk mengontrol cara Varnish mengambil konten. Berikut ini contohnya:

sub vcl_backend_fetch { set bereq.http.User-Agent = "Varnish Cache"; kembali (mengambil); }

Dalam contoh ini, kami menetapkanAgen-Penggunaheader dalam permintaan ke server backend ke "Varnish Cache" sebelum mengambil konten.

Menggunakan Fitur VCL Tingkat Lanjut

Varnish memiliki beberapa fitur lanjutan yang dapat Anda gunakan untuk menyesuaikan perilakunya.

Manipulasi Header HTTP

Anda dapat memanipulasi header HTTP di Varnish untuk menambah, menghapus, atau mengubah header. Berikut ini contoh cara menambahkan header khusus:

sub vcl_deliver { set resp.http.X-Custom-Header = "Ini adalah header khusus"; kembali (menyerahkan); }

Dalam contoh ini, kami menambahkan header khusus yang disebutX-Kustom-Headertanggapan sebelum menyampaikannya kepada klien.

Logika Bersyarat

Anda dapat menggunakan logika kondisional di Varnish untuk membuat keputusan berdasarkan permintaan atau respons. Berikut ini contoh cara menggunakan logika kondisional untuk mengalihkan permintaan:

sub vcl_recv { if (req.url == "/halaman lama") { return (synth(301, "http://example.com/new-page")); } kembali (lulus); }

Dalam contoh ini, jika URL permintaannya adalah/halaman lama, kami mengirim pengalihan 301 kehttp://example.com/new-page.

Produk Pernis Kami

Sebagai pemasok Varnish, kami menawarkan rangkaian produk pernis berkualitas tinggi. Lihat kamiPernis Lapisan Bening Berbasis Air,Lapisan Atas Matte Berbasis Air, DanGloss Poliuretan Berbasis Air. Produk-produk ini cocok untuk berbagai aplikasi dan dapat memberikan perlindungan dan penyelesaian akhir yang sangat baik.

Kesimpulan

Menulis kode VCL yang efektif memerlukan waktu dan latihan, namun upaya ini sepadan. Dengan memahami dasar-dasar VCL, menggunakan strategi caching yang tepat, dan memanfaatkan fitur-fitur canggih, Anda dapat mengoptimalkan kinerja aplikasi web dan mengurangi beban pada server backend Anda.

Jika Anda tertarik dengan produk Varnish kami atau memerlukan informasi lebih lanjut tentang konfigurasi VCL, jangan ragu untuk menghubungi kami untuk diskusi pengadaan. Kami di sini untuk membantu Anda menemukan solusi terbaik untuk kebutuhan Anda.

Referensi

  • Dokumentasi Pernis
  • Berbagai sumber daya online tentang Varnish dan cache web
Kirim permintaan
Hubungi kamiJika ada pertanyaan

Anda dapat menghubungi kami melalui telepon, email, atau formulir online di bawah ini. Spesialis kami akan segera menghubungi Anda kembali.

Hubungi sekarang!