Wij hosten een site op aantal webservers in een NLB cluster met daarachter een sql server.
Op de webservers draait een .NET applicatie en de site maakt gebruik van SSL.
Ons NLB draait met een affinity mode van “single”. Dit betekend dat het afzender adres gebruikt wordt voor het balancen in het cluster.
Voor gebruikers die van het web afkomen is dit een prima oplossing.
Echter als er een bedrijf is met meerdere gebruikers achter een proxy server (met dus 1 ip adres) gebruikt maakt van onze diensten, dan komen dus alle gebruikers op dezelfde server terecht.
Wat wij eigenlijk willen is dat we “no affinity” kunnen gebruiken. Zo wordt iedere request naar een volgende server in het NLB gesluist.
Een SSL beveiligde site gebruiken met affinity “single” geeft geen problemen omdat de SSL sessie maar 1 keer hoeft worden opgebouwd. Een volgende connectie gaat snel omdat er een “SSL session state” wordt bij gehouden.
Als we echter een SSL beveiligde site willen gebruiken met “no affinity” dan zal dus bij elke request de SSL verbinding opnieuw moeten worden opgebouwd. Dit geeft een stuk meer overhead en de performance zal dus flink dalen.
Op de microsoft site staat zelfs een stukje “The overhead for obtaining a new SSL session ID is five times more than for reusing a session ID”
Nou zijn er voor zover ik weet weinig oplossingen voor dit probleem :
Meer servers in het NLB: Dit heeft niet zoveel zin, als er een grote partij op 1 server uitkomt wordt de load dan nog niet verdeeld.
Meer ip addressen klanten : Als een klant met een grote groep gebruikers erachter meerdere ip adressen zou gebruiken in de communicatie naar onze site zou het “NLB algoritme” met “Single Affinity”deze addressen kunnen herleiden naar verschillende servers.
Ik ben bang dat er geen oplossing voor is maar heeft iemand hier nog ervaringen mee ?
Ik weet dat er voor ASP.NET “state servers” zijn, is er ook zoiets voor SSL ?
Op de webservers draait een .NET applicatie en de site maakt gebruik van SSL.
Ons NLB draait met een affinity mode van “single”. Dit betekend dat het afzender adres gebruikt wordt voor het balancen in het cluster.
Voor gebruikers die van het web afkomen is dit een prima oplossing.
Echter als er een bedrijf is met meerdere gebruikers achter een proxy server (met dus 1 ip adres) gebruikt maakt van onze diensten, dan komen dus alle gebruikers op dezelfde server terecht.
Wat wij eigenlijk willen is dat we “no affinity” kunnen gebruiken. Zo wordt iedere request naar een volgende server in het NLB gesluist.
Een SSL beveiligde site gebruiken met affinity “single” geeft geen problemen omdat de SSL sessie maar 1 keer hoeft worden opgebouwd. Een volgende connectie gaat snel omdat er een “SSL session state” wordt bij gehouden.
Als we echter een SSL beveiligde site willen gebruiken met “no affinity” dan zal dus bij elke request de SSL verbinding opnieuw moeten worden opgebouwd. Dit geeft een stuk meer overhead en de performance zal dus flink dalen.
Op de microsoft site staat zelfs een stukje “The overhead for obtaining a new SSL session ID is five times more than for reusing a session ID”
Nou zijn er voor zover ik weet weinig oplossingen voor dit probleem :
Meer servers in het NLB: Dit heeft niet zoveel zin, als er een grote partij op 1 server uitkomt wordt de load dan nog niet verdeeld.
Meer ip addressen klanten : Als een klant met een grote groep gebruikers erachter meerdere ip adressen zou gebruiken in de communicatie naar onze site zou het “NLB algoritme” met “Single Affinity”deze addressen kunnen herleiden naar verschillende servers.
Ik ben bang dat er geen oplossing voor is maar heeft iemand hier nog ervaringen mee ?
Ik weet dat er voor ASP.NET “state servers” zijn, is er ook zoiets voor SSL ?