Vernik Önbelleği + NGINX Ters Proxy Nasıl Çalışır?

Yayınlanan: 2022-08-09

Bu yazıda Varnish cache NGINX ters proxy'yi ve nasıl kurabileceğinizi tartışacağız.

HTTP önbelleğe almayı vurgulayan bir proxy sunucusu Varnish'tir. HTTP hızlandırıcısı olarak yapılmıştır ve Apache veya NGINX web sunucunuz için ters proxy işlevi görebilir. Çok fazla trafiğe ve yüksek öneme sahip web siteleri Varnish'i uyguladı.

İçindekiler

Vernik Önbelleği Nedir?

Web tabanlı bir firma için önbellek genellikle en önemli yazılım parçasıdır. Varnish Cache, tam olarak adından da anlaşılacağı gibi yapan güçlü, açık kaynaklı bir HTTP motoru/ters HTTP proxy'sidir: bir ziyaretçi onu ilk kez görüntülediğinde bir web sayfasının bir kopyasını önbelleğe alır (veya depolar). Bu, bir web sitesini yüzde 1000'e kadar hızlandırabilir. Varnish, sunucunuza sayfayı önbelleğe alması için tek bir istekte bulunur ve ardından aynı sayfa için sonraki istekleri işler. Bu, inanılmaz derecede hızlı içerik teslimi ve arka uç sunucu kaynaklarına daha az talep ile sonuçlanır.

  • Varnish'in temel yetkinlikleri hız ve performanstır.
  • Sunucu altyapısı tasarrufu
  • Ölçeklenebilirlik - Vernik, ziyaretçi veya talep hacminden bağımsız olarak sitenizin talebi karşılamasını sağlar.
  • Kesintilere karşı koruma: Vernik, sunucunuz çökse bile önbelleğe alınmış bilgileri sunmaya devam eder.
  • Esneklik: Vernik Yapılandırma Dili (VCL), özel çözümler, kurallar ve modüllerin oluşturulmasına olanak tanır.
  • Gelişmiş kullanıcı deneyimi

Vernik Önbelleği nasıl çalışır?

Varnish, web sunucunuzun arka ucuna ulaşmadan önce gelen tüm istekleri işler. Önbelleği tüm web trafiğini yönetir ve varsayılan olarak her iki dakikada bir yenilenir.

Vernik Önbelleği Nginx Ters Proxy

Varnish, istek önbelleğe alınmadıysa, genel ters proxy paragrafında gördüğümüz gibi, isteği web sunucusunun arka ucuna yönlendirecek ve sonucu önbelleğe alacaktır.

İstekler önbelleğe alındıktan sonra belleğe alınır ve daha sonra hızlı bir şekilde alınıp müşterilere gönderilebilir. Varnish, ayarları, önbelleğe alma ilkelerini ve diğer kuralları (Varnish Configuration Language) ifade etmek için VCL dilini kullanır.

Bu dili ve varyasyonlarını kullanarak her isteğe farklı yanıt verebilirsiniz. Örneğin, belirli istekleri belirli bir arka uca yönlendirebilir veya Varnish'e gelen talebin özelliklerine veya sonuçlarına göre farklı bir eylemde bulunması için talimat verebilirsiniz.

Önbelleğe alınmış materyal, web sunucusu kullanılamadığında bile, bir başka şaşırtıcı Varnish işlevi olan arka uç yoklama adı verilen yerleşik bir özellik sayesinde sağlanabilir. Varnish, bir kesinti tespit ederse, ödemesiz süre olarak bilinen bir zaman çerçevesi için önbelleğe alınmış içerik sağlamaya devam edecektir. Arka uç yoklaması, sunucuyu esnek olarak ayarlayabileceğiniz bir frekansta sorgular.

Nginx nedir?

NGINX, video akışı, önbelleğe alma, ters proxy'ler, web sunumu ve diğer işlevler için kullanılabilen açık kaynaklı bir yazılımdır. Başlangıçta en yüksek hız ve güvenilirlik için oluşturulmuş bir web sunucusu olarak başladı. NGINX, HTTP sunucusu olarak hizmet vermenin yanı sıra bir HTTP sunucusu, bir e-posta proxy sunucusu (IMAP, POP3 ve SMTP), bir ters proxy ve HTTP, TCP ve UDP sunucuları için bir yük dengeleyici olarak çalışabilir.

Ters proxy nedir?

Bir ters proxy'nin birincil işlevi, web sunucularını gelen trafikten korumaktır. Her bağlantı isteği, isteği işleyene bağlanmadan önce birçok sunucu aracılığıyla ileten bir ters proxy tarafından alınır.

Her ters proxy işleminin üç ana aşaması vardır:

  1. Bağlantı isteği toplama: Ağın ucunda, ters proxy gelen istekleri kabul eder.
  2. TCP üç yollu el sıkışma: Bir TCP üç yollu el sıkışmadan sonra ters proxy ile bağlantı oluşturulur ve ilk bağlantı kapatılır.
  3. Kaynak sunucu bağlantısı: Hayali bir IP adresi kullanarak, ters proxy, kaynak sunucuyu istemci isteğine bağlar.

Web uygulamalarına yapılan tüm web tarayıcı bağlantıları her zaman bir ters proxy aracılığıyla yapıldığından, kullanıcılar hiçbir zaman doğrudan bir kaynak sunucuya bağlanamazlar.

Vernik önbelleği Nginx ters proxy'yi nasıl kurabilirsiniz?

Nginx'i sunucunuza kurun

Öncelikle apt komutunu kullanarak Ubuntu deposundan Nginx'i kurmamız gerekiyor.

 sudo apt update apt install nginx -y

Kurulum tamamlandıktan sonra, systemctl komutunu kullanarak Nginx'in her sistem açılışında başlatılmasını başlatmamız ve etkinleştirmemiz gerekiyor.

 systemctl start nginx systemctl enable nginx

88 numaralı bağlantı noktasında Nginx'i yapılandırın

Nginx'i operasyon için alışılmamış HTTP bağlantı noktası 8080'i kullanacak şekilde ayarlayacağız. Bunu yapmak için, "siteler-kullanılabilir" dizininde bulunan sanal ana bilgisayar dosyalarını değiştirmeliyiz.

 nano /etc/nginx/sites-available/default

'Dinle' satır değerini 8080 olarak değiştirin. Kaydedin ve çıkın.

Nginx ayarlarını hemen test ederek hataları kontrol edin. Bundan sonra hizmeti yeniden başlatın.

 nginx -t systemctl restart nginx

netstat kullanarak Nginx'i bir kez daha kontrol edin ve alışılmamış HTTP bağlantı noktası 8080'de çalıştığını doğrulayın.

 netstat -plntu

Yüklendi ve 8080 numaralı bağlantı noktası şu anda Nginx web sunucusu tarafından kullanılıyor.

Ubuntu'ya Vernik yükleyin

apt komutunu kullanarak vernik yüklememiz gerekiyor.

 sudo apt install varnish -y

Aşağıda listelenen systemctl komutlarını kullanarak verniği başlatın ve sistem önyüklendiğinde otomatik olarak başlayacak şekilde ayarlayın.

 systemctl start varnish systemctl enable varnish

Varsayılan olarak vernik, yönetici web arayüzü için 6082 numaralı bağlantı noktasını ve genel erişim için 6081 numaralı bağlantı noktasını kullanır. Kontrol etmek için netstat komutunu kullanarak belirli bağlantı noktalarının listelendiğinden emin olun.

 netstat -plntu

Vernik HTTP hızlandırıcı yüklendi

Varnish'i Nginx için ters proxy olarak yapılandırın

Nginx web sunucusu için bir ters proxy olarak Varnish kullanılacaktır. Nginx web sunucusu 8080 numaralı HTTP bağlantı noktasında, Varnish ise 80 numaralı HTTP bağlantı noktasında çalışacak.

Bu aşamada, Nginx için Varnish'i ayarlayacağız, arka uç sunucusunu belirleyeceğiz ve Varnish'i varsayılan bağlantı noktası olarak HTTP bağlantı noktası 80'i kullanacak şekilde değiştireceğiz.

Hemen vernik yapılandırma dizinine giderek "default.vcl" dosyasını düzenleyin. ve ana bilgisayarın 127.0.0.1 olduğundan ve bağlantı noktasının 8080 olduğundan emin olun

 nano /etc/varnish/default.vcl

Arka uç yapılandırması tamamlandı.

Sonraki adım, Varnish'i HTTP bağlantı noktası 80'i kullanacak şekilde ayarlamaktır. Vernik yapılandırma dosyasını '/etc/default' dizinindeki 'vernik' dizinine giderek düzenleyin.

 nano /etc/default/varnish

Varsayılan bağlantı noktanızın 6081 ve HTTP bağlantı noktasının 80 olduğundan emin olun.

'/lib/systemd/system' dizinindeki vernik servis dosyası şimdi düzenlenmelidir. systemd sistem dizinine giderek varnish.service dosyasını düzenleyin.

 cd /lib/systemd/system nano varnish.service

'ExecStart' satırındaki HTTP bağlantı noktası 80'i vernik bağlantı noktası 6081 ile değiştirin.

Şimdi systemd yapılandırmasını yeniden yükleyin ve verniği yeniden başlatın

 systemctl daemon-reload systemctl restart varnish

netstat komutunu kullanarak verniği kontrol edin

 netstat -plntu

Nginx için ters proxy olarak vernik yapılandırması tamamlandı

UFW güvenlik duvarını yapılandırın

Ubuntu işletim sistemindeki varsayılan insan tarafından okunabilen güvenlik duvarına "UFW" adı verilir. Paketiniz yoksa, bunları yüklemek için aşağıda gösterilen apt komutunu kullanın.

 sudo apt install ufw

Güvenlik duvarını açıp yeni SSH, HTTP ve HTTPS bağlantı noktalarını açacağız.

aşağıda listelenen ufw komutları.

 ufw allow ssh ufw allow http ufw allow https

Şimdi güvenlik duvarını açın ve her zaman önyükleme zamanında başlayacak şekilde yapın.

 ufw enable

Artık UFW güvenlik duvarı etkin olduğundan, hem HTTP hem de HTTPS bağlantı noktalarına dış ağdan erişilebilir.