Vernik Önbelleği + NGINX Ters Proxy Nasıl Çalışır?
Yayınlanan: 2022-08-09Bu 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.
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:
- Bağlantı isteği toplama: Ağın ucunda, ters proxy gelen istekleri kabul eder.
- 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.
- 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.