Hai! Jika Anda menjalankan aplikasi Ruby on Rails dan ingin meningkatkan kinerjanya, Anda datang ke tempat yang tepat. Saya dari pemasok Varnish, dan saya di sini untuk memandu Anda tentang cara menggunakan Varnish dengan aplikasi Ruby on Rails Anda.
Pertama, mari kita bahas apa itu Varnish. Varnish adalah akselerator HTTP berkinerja tinggi. Secara sederhana, ini seperti buffer super cepat antara server web dan pengguna Anda. Ini menyimpan salinan halaman web dalam memori, jadi ketika pengguna meminta halaman, Varnish dapat menyajikannya jauh lebih cepat daripada aplikasi Rails Anda jika harus membuat halaman dari awal setiap saat.
Mengapa Menggunakan Varnish dengan Ruby on Rails?
Ruby on Rails adalah kerangka kerja luar biasa untuk membangun aplikasi web. Ini memiliki banyak fitur dan membuat pengembangan menjadi mudah. Namun salah satu kelemahannya adalah agak lambat saat menyajikan konten statis dan menangani beban lalu lintas tinggi. Di situlah peran Varnish.


Dengan menggunakan Varnish, Anda dapat memindahkan banyak pekerjaan dari aplikasi Rails Anda. Varnish dapat menyimpan halaman, gambar, dan aset statis lainnya dalam cache, sehingga mengurangi beban pada server Rails Anda. Ini berarti aplikasi Anda dapat menangani lebih banyak lalu lintas tanpa error, dan pengguna Anda akan merasakan waktu muat yang lebih cepat.
Memasang Pernis
Langkah pertama adalah menginstal Varnish di server Anda. Proses instalasi dapat bervariasi tergantung pada sistem operasi Anda. Misalnya, jika Anda menggunakan Ubuntu, Anda dapat menggunakan perintah berikut:
sudo apt - perbarui sudo apt - instal pernis
Jika Anda menggunakan sistem lain seperti CentOS, Anda perlu menggunakan perintah yang berbeda. Anda dapat memeriksa dokumentasi resmi Varnish untuk petunjuk instalasi terperinci untuk OS spesifik Anda.
Mengonfigurasi Varnish untuk Ruby on Rails
Setelah Anda menginstal Varnish, saatnya mengonfigurasinya agar berfungsi dengan aplikasi Ruby on Rails Anda. Varnish menggunakan file konfigurasi bernamadefault.vcl(Bahasa Konfigurasi Pernis).
Hal pertama yang perlu Anda lakukan adalah memberi tahu Varnish di mana aplikasi Rails Anda berjalan. Secara default, Rails berjalan pada port 3000. Anda dapat menambahkan kode berikut ke port Andadefault.vclmengajukan:
ujung belakang default { .host = "127.0.0.1"; .port = "3000"; }
Ini memberitahu Varnish bahwa aplikasi Rails Anda berjalan di mesin lokal (127.0.0.1) pada port 3000.
Selanjutnya, Anda perlu mengonfigurasi Varnish untuk menyimpan konten yang tepat dalam cache. Anda tidak ingin menyimpan cache halaman yang dipersonalisasi untuk setiap pengguna, seperti dasbor pengguna atau keranjang belanja. Anda dapat menggunakan aturan bawaan Varnish untuk mengontrol apa yang di-cache.
Berikut ini contoh bagaimana Anda dapat menyimpan halaman statis dalam cache:
sub vcl_recv { if (req.url ~ "^/(gambar|javascript|stylesheet)/") { return (hash); } if (req.method == "GET" || req.method == "HEAD") { return (hash); } else { kembali (lulus); } }
Kode ini memberitahu Varnish untuk menyimpan permintaan gambar, file JavaScript, dan stylesheet dalam cache. Itu juga menyimpan permintaan GET dan HEAD, yang biasanya digunakan untuk mengambil halaman. Jenis permintaan lainnya, seperti permintaan POST (digunakan untuk pengiriman formulir), diteruskan ke aplikasi Rails tanpa di-cache.
Menguji Pengaturan Pernis Anda
Setelah Anda mengonfigurasi Varnish, saatnya mengujinya. Pertama, restart Varnish untuk menerapkan konfigurasi baru:
sudo systemctl restart pernis
Kemudian, Anda bisa menggunakan alat sepertikeritinguntuk menguji apakah Varnish berfungsi dengan benar. Coba akses aplikasi Rails Anda melalui Varnish. Secara default, Varnish mendengarkan pada port 6081. Jadi, Anda dapat menggunakan perintah berikut:
keriting http://localhost:6081
Jika semuanya sudah diatur dengan benar, Anda akan melihat output dari aplikasi Rails Anda. Anda juga dapat memeriksa log Varnish untuk melihat apakah permintaan sedang di-cache atau diteruskan.
Konfigurasi Pernis Tingkat Lanjut untuk Rel
Ada beberapa konfigurasi lanjutan yang dapat Anda lakukan untuk mendapatkan hasil maksimal dari Varnish dengan aplikasi Ruby on Rails Anda.
Pembatalan Cache
Salah satu tantangan dengan caching adalah mengetahui kapan harus membuat cache tidak valid. Misalnya, jika pengguna memperbarui informasi profil mereka di aplikasi Rails Anda, Anda perlu memastikan halaman cache untuk profil pengguna tersebut diperbarui.
Anda bisa menggunakan Varnishmelarangfitur untuk membatalkan cache. Di aplikasi Rails Anda, Anda dapat mengirim permintaan khusus ke Varnish untuk melarang URL tertentu atau sekumpulan URL. Berikut ini contoh bagaimana Anda dapat melakukan ini di Rails:
memerlukan 'net/http' uri = URI('http://localhost:6082/ban') req = Net::HTTP::Post.new(uri) req['X-Ban-Regex'] = '^/users/1' res = Net::HTTP.start(uri.hostname, uri.port) do |http| http.permintaan(permintaan) berakhir
Kode ini mengirimkan permintaan pelarangan ke Varnish, memerintahkannya untuk membatalkan halaman cache apa pun yang cocok dengan ekspresi reguler^/pengguna/1.
Menggunakan Pernis dengan HTTPS
Jika aplikasi Rails Anda menggunakan HTTPS, Anda harus mengonfigurasi Varnish agar dapat menggunakannya. Anda dapat menggunakan proxy terbalik seperti Nginx atau Apache di depan Varnish untuk menangani penghentian SSL.
Berikut adalah contoh sederhana bagaimana Anda dapat mengonfigurasi Nginx agar berfungsi dengan Varnish:
server {dengarkan 443 ssl; nama_serverdomainanda.com; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; lokasi / { proxy_pass http://127.0.0.1:6081; proxy_set_header Tuan rumah $host; proxy_set_header X - Asli - IP $remote_addr; proxy_set_header X - Diteruskan - Untuk $proxy_add_x_forwarded_for; } }
Konfigurasi ini memberitahu Nginx untuk mendengarkan pada port 443 (port HTTPS default) dan meneruskan permintaan ke Varnish yang berjalan pada port 6081.
Produk Pernis Kami
Sebagai pemasok Varnish, kami menawarkan rangkaian produk Varnish berkualitas tinggi. Misalnya, kita punyaLapisan Atas Matte Berbasis Air, yang memberikan hasil akhir yang halus dan elegan. KitaGloss Poliuretan Berbasis Airmenawarkan permukaan mengkilap dan tahan lama. Dan ituPernis Lapisan Bening Berbasis Airsangat cocok untuk melindungi permukaan Anda sekaligus mempertahankan tampilan alaminya.
Hubungi Kami untuk Pembelian
Jika Anda tertarik menggunakan produk Varnish kami untuk meningkatkan kinerja aplikasi Ruby on Rails Anda, kami akan sangat senang mendengar pendapat Anda. Baik Anda startup kecil atau perusahaan besar, tim ahli kami dapat membantu Anda menemukan solusi Varnish yang tepat untuk kebutuhan Anda. Hubungi kami untuk konsultasi mendetail dan mari kita mulai mengoptimalkan kinerja aplikasi Anda bersama-sama.
Referensi
- Dokumentasi resmi pernis
- Dokumentasi resmi Ruby on Rails
- Dokumentasi resmi Nginx
