Bagaimana Cara Kerja Varnish Cache + NGINX Reverse Proxy

Diterbitkan: 2022-08-09

Pada artikel ini kita akan membahas varnish cache NGINX reverse proxy dan bagaimana Anda dapat mengaturnya.

Server proxy dengan penekanan pada caching HTTP adalah Varnish. Itu dibuat untuk menjadi akselerator HTTP dan dapat berfungsi sebagai proxy terbalik untuk server web Apache atau NGINX Anda. Situs web dengan banyak lalu lintas dan keunggulan tinggi telah menerapkan Varnish.

Daftar isi

Apa itu Cache Pernis?

Untuk perusahaan berbasis web, cache sering kali merupakan perangkat lunak yang paling penting. Varnish Cache adalah mesin HTTP open-source/proxy HTTP terbalik yang kuat yang melakukan persis seperti namanya: menyimpan (atau menyimpan) salinan halaman web saat pertama kali pengunjung melihatnya. Ini dapat mempercepat situs web hingga 1000 persen. Varnish membuat satu permintaan ke server Anda untuk men-cache halaman, setelah itu menangani permintaan berikutnya untuk halaman yang sama. Ini menghasilkan pengiriman konten yang sangat cepat dan lebih sedikit permintaan pada sumber daya server backend.

  • Kompetensi inti Varnish adalah kecepatan dan kinerja.
  • Penghematan infrastruktur server
  • Skalabilitas - Varnish memungkinkan situs Anda memenuhi permintaan terlepas dari volume pengunjung atau permintaan.
  • Perlindungan dari pemadaman: Varnish terus menyajikan informasi yang di-cache bahkan jika server Anda mogok.
  • Fleksibilitas: Varnish Configuration Language (VCL) memungkinkan pembuatan solusi, aturan, dan modul khusus.
  • Pengalaman pengguna yang ditingkatkan

Bagaimana cara kerja Varnish Cache?

Sebelum mereka mencapai backend server web Anda, Varnish memproses semua permintaan yang masuk. Cache-nya menangani semua lalu lintas web dan, secara default, diperbarui setiap dua menit.

Varnish Cache Nginx Reverse Proxy

Varnish akan merutekan permintaan ke backend server web dan menyimpan hasilnya, seperti yang baru saja kita lihat di paragraf proxy terbalik umum jika permintaan tidak di-cache.

Setelah permintaan di-cache, mereka dimasukkan ke dalam memori dan kemudian dapat dengan cepat diambil dan dikirim ke pelanggan. Varnish menggunakan bahasa VCL untuk mengekspresikan pengaturan, kebijakan caching, dan aturan lainnya (Bahasa Konfigurasi Varnish).

Anda dapat menanggapi setiap permintaan secara berbeda menggunakan bahasa ini dan variasinya. Misalnya, Anda dapat mengarahkan permintaan tertentu ke backend tertentu atau menginstruksikan Varnish untuk mengambil tindakan berbeda berdasarkan karakteristik permintaan yang masuk atau hasilnya.

Materi yang di-cache mungkin masih tersedia bahkan ketika server web tidak tersedia karena fitur built-in yang disebut backend polling, yang merupakan fungsi Varnish menakjubkan lainnya. Varnish akan terus menyediakan konten yang di-cache untuk jangka waktu yang dikenal sebagai waktu tenggang jika mendeteksi waktu henti. Polling backend menanyakan server pada frekuensi yang dapat Anda atur secara fleksibel.

Apa itu Nginx?

NGINX adalah perangkat lunak sumber terbuka yang dapat digunakan untuk streaming video, caching, proxy terbalik, penyajian web, dan fungsi lainnya. Ini awalnya dimulai sebagai server web yang dibangun untuk kecepatan dan keandalan maksimal. NGINX dapat beroperasi sebagai server HTTP, server proxy email (IMAP, POP3, dan SMTP), proxy terbalik, dan penyeimbang beban untuk server HTTP, TCP, dan UDP selain berfungsi sebagai server HTTP.

Apa itu proxy terbalik?

Fungsi utama reverse proxy adalah untuk melindungi server web dari lalu lintas masuk. Setiap permintaan koneksi diterima oleh proxy terbalik, yang meneruskannya melalui banyak server sebelum terhubung ke salah satu yang menangani permintaan tersebut.

Setiap operasi proxy terbalik memiliki tiga fase utama:

  1. Pengumpulan permintaan koneksi: Di ​​tepi jaringan, proxy terbalik menerima permintaan masuk.
  2. Jabat tangan tiga arah TCP: Koneksi ke proxy terbalik dibuat setelah jabat tangan tiga arah TCP, dan koneksi pertama ditutup.
  3. Koneksi server asal: Menggunakan alamat IP fiktif, proxy terbalik menghubungkan server asal ke permintaan klien.

Pengguna tidak pernah dapat terhubung langsung ke server asal karena semua koneksi browser web ke aplikasi web selalu dilakukan melalui proxy terbalik.

Bagaimana Anda bisa mengatur Varnish cache Nginx reverse proxy?

Instal Nginx di server Anda

Pertama-tama kita perlu menginstal Nginx dari repositori Ubuntu menggunakan perintah apt

 sudo apt update apt install nginx -y

Setelah instalasi selesai, kita perlu memulai dan mengaktifkan Nginx untuk diluncurkan setiap kali saat boot sistem menggunakan perintah systemctl

 systemctl start nginx systemctl enable nginx

Konfigurasi Nginx pada port 88

Kami akan menyiapkan Nginx untuk menggunakan port HTTP 8080 yang tidak konvensional untuk operasi. Untuk melakukan ini, kita harus memodifikasi file host virtual yang terletak di direktori "sites-available".

 nano /etc/nginx/sites-available/default

Ubah nilai baris 'dengarkan' menjadi 8080. Simpan dan keluar.

Periksa kesalahan dengan menguji pengaturan Nginx sekarang. Mulai ulang layanan setelah itu.

 nginx -t systemctl restart nginx

Periksa Nginx sekali lagi menggunakan netstat , dan konfirmasikan bahwa Nginx beroperasi pada port HTTP 8080 yang tidak konvensional.

 netstat -plntu

Itu telah diinstal, dan port 8080 saat ini digunakan oleh server web Nginx.

Instal Pernis di Ubuntu

Kita harus menginstal pernis menggunakan perintah apt

 sudo apt install varnish -y

Dengan menggunakan perintah systemctl yang tercantum di bawah ini, mulai pernis dan atur agar mulai secara otomatis saat sistem melakukan booting.

 systemctl start varnish systemctl enable varnish

Secara default, varnish akan menggunakan port 6082 untuk antarmuka web admin dan port 6081 untuk akses publik. Pastikan port tertentu terdaftar dengan menggunakan perintah netstat untuk memeriksa.

 netstat -plntu

Akselerator HTTP pernis telah diinstal

Konfigurasikan Varnish sebagai proxy terbalik untuk Nginx

Sebagai proxy terbalik untuk server web Nginx, Varnish akan digunakan. Server web Nginx akan beroperasi pada port HTTP 8080, sedangkan Varnish akan berjalan pada port HTTP 80.

Pada fase ini, kita akan mengatur Varnish untuk Nginx, mengidentifikasi server backend, dan memodifikasi Varnish agar menggunakan HTTP port 80 sebagai port defaultnya.

Edit file "default.vcl" dengan langsung masuk ke direktori konfigurasi varnish. dan pastikan Host adalah 127.0.0.1 dan port adalah 8080

 nano /etc/varnish/default.vcl

Konfigurasi backend selesai.

Langkah selanjutnya adalah mengatur Varnish untuk menggunakan HTTP port 80. Edit file konfigurasi varnish dengan masuk ke direktori 'varnish' di direktori '/etc/default'.

 nano /etc/default/varnish

Pastikan port default Anda adalah 6081 dan port HTTP adalah 80

File layanan pernis di direktori '/lib/systemd/system' sekarang harus diedit. Edit file varnish.service dengan masuk ke direktori sistem systemd.

 cd /lib/systemd/system nano varnish.service

Ganti port HTTP 80 dengan port pernis 6081 pada baris 'ExecStart'.

Sekarang muat ulang konfigurasi systemd dan mulai ulang pernis

 systemctl daemon-reload systemctl restart varnish

Periksa pernis menggunakan perintah netstat

 netstat -plntu

konfigurasi pernis sebagai proxy terbalik untuk Nginx telah selesai

Konfigurasikan firewall UFW

Firewall default yang dapat dibaca manusia pada sistem operasi Ubuntu disebut "UFW." Gunakan perintah apt yang ditunjukkan di bawah ini untuk menginstalnya jika Anda belum memiliki paketnya.

 sudo apt install ufw

Kami akan mengaktifkan firewall dan membuka port SSH, HTTP, dan HTTPS baru.

perintah ufw yang tercantum di bawah ini.

 ufw allow ssh ufw allow http ufw allow https

Sekarang nyalakan firewall dan buat sedemikian rupa sehingga selalu dimulai saat boot.

 ufw enable

Sekarang setelah firewall UFW aktif, port HTTP dan HTTPS dapat dijangkau dari jaringan luar.