SSL, yerel oturumlar ve yük dengeleme açısından birbirine bağlı gibi görünen bir sürü sorum var, bu yüzden bu sorunun uzunluğu için şimdiden özür dilerim.
Dosya tabanlı oturumlar kullanan bir web sitem var. Sitenin doğası, çoğunun http olması, ancak bazı bölümlerin SSL olmasıdır. Şu anda, dosya tabanlı oturumlar nedeniyle, herhangi bir SSL isteğinin önceki http istekleriyle aynı sunucuya çarpması gerekir.
Zaman kısıtlamaları nedeniyle, denge artışı http ve SSL trafiğini yüklemek için mümkün olan en kolay şeyi yapmak istiyorum.
Yapışkan yük dengeleme algoritmaları için 2 seçenek var gibi görünüyor:
- ip tabanlı
- çerez tabanlı
IP tabanlı çözüm muhtemelen işe yarayacaktır, ancak karma algoritması, bir sunucu çöktüğünde veya eklendiğinde mevcut dosya tabanlı oturum kurulumuyla istenmeyen bir kullanıcının sunucuyu potansiyel olarak değiştirecektir. Ayrıca, bir kullanıcının bir web sitesini tararken ips'i meşru bir şekilde değiştirmesinin teknik olarak mümkün olduğunu da varsayalım.
Çerez tabanlı algoritma daha iyi görünüyor, ancak ssl tarafından şifrelendiğinde çerezi denetleyememe, kendi sorunlarını ortaya koyuyor.
Denge ssl yükleme örnekleri için googling ve ben çerez tabanlı yük dengeleme yapabilir ve başka bir ssl kod çözücü ekleyerek artan ssl yük ile başa çıkabilirim kurulum herhangi bir açık örnekleri bulamıyorum görünmüyor.
Gördüğüm açık örneklerin çoğu, tarayıcı istemcisi ve yük dengeleyici arasında oturan ssl kod çözücüsüne (genellikle donanım, apache_mod_ssl veya nginx) sahiptir. Örnekler genellikle böyle bir şeye sahiptir ( http://haproxy.1wt.eu/download/1.3/doc/architecture.txt adresinden değiştirildi ):
192.168.1.1 192.168.1.11-192.168.1.14 ------- + ----------- + ----- + ----- + ----- + | | | | | + - + - + + - + - + + - + - + + - + - + + - + - + | LB1 | | A | | B | | C | | D | + ----- + + --- + + --- + + --- + + --- + apache 4 ucuz web sunucuları mod_ssl HAProxy
Yukarıdaki örnekte ssl kod çözme kısmı, yatay olarak ölçeklenemeyen potansiyel bir darboğaz gibi görünmektedir.
Ben haproxy baktım, ve birden fazla ssl kod çözücüleri var izin verecek böyle bir şey izin verecek bir 'mod tcp' seçeneği var gibi görünüyor:
HAProxy | ------------- | | ssl-dekoder-1 ssl-dekoder2 | | ------------------- | | | web1 web2 web3
Ancak, böyle bir kurulumda, istemcinin ip'ini kaybedeceğiniz anlaşılıyor çünkü haproxy ssl kodunu çözmüyor: https://cloud-support.engineyard.com/discussions/problems/335-haproxy-not-passing-x-forwarded -için
Ayrıca nginx'e baktım ve yatay olarak ölçeklenebilir ssl-kod çözücülerin açık örneklerini de görmüyorum. Potansiyel bir darboğaz olarak nginx'e sahip birçok insan örneği var gibi görünüyor. Ve en azından bu bağlantı bile seçeneğine sahip olmadığını nginx önermek görünüyor HAProxy benzeri o nginx "bir arka uca TCP bağlantılarını geçen şeffaf desteklemiyor" diyerek ip kaybedecek kurulum nasıl Apache geçmek SSL trafiği üzerinden nginx proxy? .
Sorular:
- Neden artan trafik ile başa çıkmak için daha fazla SSL kod çözücü ekleyerek kurulumların daha fazla örneği yok gibi görünüyor?
- SSL kod çözme adımı sadece teorik bir darboğaz olduğu ve pratik olarak konuşursak, gülünç trafiği olan siteler dışında bir kod çözücü esasen yeterli olacak mı?
- Akla gelen bir başka olası çözüm, belki de bu kadar ssl ihtiyacı olan herkesin merkezi bir oturum deposuna sahip olmasıdır, bu nedenle istemcinin sıralı istekler üzerine hangi web sunucusuna isabet ettiği önemli değildir. Ardından her web sunucusunda mod_ssl veya eşdeğerini etkinleştirebilirsiniz.
- Yukarıda belirtilen haproksi çözümü işe yarıyor gibi görünüyor (istemci IP sorununun yanı sıra), ancak istemci IP'sini korurken kod çözücü sayısını artırarak çalışacak yapışkan çerez tabanlı bir yazılım yük dengeleyici çözümüne rastlayan biri var, ya da belki de teknik olarak değil mümkün (istemci IP'sini alma isteğini deşifre etmeniz gerektiğinden, bu durumda bir kod çözücü darboğazımız vardır).
Söylediğim her şeyin doğru olduğunu varsayarsak, bunlar benim seçeneklerim gibi görünüyor:
- ip hashing kullan (potansiyel olarak ips'i potansiyel olarak değiştiren kullanıcılar ve sunucu ekleme ve bırakma senaryoları için kötü)
- ssl isteğine dokunan ilk program olarak nginx veya mod_ssl kullanın, bu potansiyel bir ssl kod çözme darboğazı olacaktır
- ssl isteğine dokunarak, yatay ssl ölçeklenebilirliği kazanarak 1. program olarak haproxy kullanın, ancak ssl istekleri için web sunucusu düzeyinde oturum açmış ips olmadan yaşayın (muhtemelen geçici olarak tamam)
- uzun vadede mobil veya merkezi bir oturum mağazasına geçerek yapışkan oturumları gereksiz hale getirir