Ters proxy ve arka uç sunucusu arasında SSL bağlantısını etkin tutma
Kullanıcılarımızın çoğundan çok uzak bir arka uç sunucum (Apache) var, bu yüzden bizim fikrimiz önbellek görevi görecek daha yakın bir ters proxy uygulamak.
İlk bakışta bir çekicilik olarak çalıştı. Önbelleğe alınan statik dosyalar son derece hızlı sunulur, ancak diğer her şey için ters proxy'nin (NGINX) arka uç sunucuya bağlanması gerekir, bu da SSL anlaşması için biraz zaman alır ve bu ilk istekleri yavaşlatır.
Bununla ilgili bilgi arıyordum ama bu bağlantıyı sürdürmenin bir yolunu bulamadım. Bunu yapmanın bir yolu var mı?
Hatta web soketleri hakkında daha fazla şey öğrenmeye çalıştım, ancak bulabildiğim tüm uygulamalar, bağlantıyı her iki web sunucusunda (ters proxy'de NGINX ve arka uçta Apache) arasında tutmak için değil, belirli bir isteği yanıtlamaktı.
Bunu başarmak için ne çalışacağınıza / kullanacağınıza / arayacağınıza dair herhangi bir fikriniz veya ipucu var mı?
Şimdiden çok teşekkür ederim!
Yanıtlar
Nginx'te keepalive, bağlantı bir upstreamblokta tanımlanmışsa , yalnızca bir yukarı akış bağlantısı belirtebilirsiniz . Örneğin:
upstream backend {
server private-api.example.com:443;
keepalive 32;
}
Burada, çalışan işlemkeepalive
başına yukarı akış sunucularına aynı anda maksimum açık bağlantı sayısını belirtir .
Yukarı akışı kullanmak için proxy_pass
, arka uç adresi yerine kendi adını belirtirsiniz .
Örneğin, daha önce kullandıysanız:
proxy_pass https://private-api.example.com:443;
Bunu şu şekilde değiştirirsiniz:
proxy_pass https://backend;
Tanımlanan için tam anlamıyla yukarı akış adını değiştirin server
.
Ayrıca HTTP sürümünü 1.1 olarak ayarlamanız gerekir (çünkü bu, saçma bir şekilde varsayılan olarak 1.0'dır) ve Bağlantı başlığını temizlemelisiniz:
proxy_http_version 1.1;
proxy_set_header Connection "";
Ayarlamanız gerekebilecek bir keepalive_timeout
de tanımlayabileceğiniz bir şey olduğunu unutmayın upstream
. Varsayılan olarak 60 saniyedir, bu nedenle bir bağlantı bu kadar uzun süre boşta kalırsa, keepalive
açık bağlantılardan daha azı olsa bile kapatılacaktır . Arka uç sunucusunun ayrıca ayrı olarak ayarlamanız gereken kendi canlı tutma zaman aşımı olacaktır.