2010-10-06 16 views
15

Che effetto ha SSL sul modo in cui funziona il bilanciamento del carico? So che è necessario utilizzare sessioni persistenti se si è scelto di non archiviare le informazioni sulla sessione nel DB o Fuori processo, ma come funziona SSL?SSL e bilanciamento del carico

+0

trovato questo link interessante http://wiki.metawerx.net/wiki/StickySessions –

+1

Questa domanda sembra essere fuori tema, perché non si tratta di programmazione. Forse [Server Fault] (http://serverfault.com/) o [Webmaster Stack Exchange] (http://webmasters.stackexchange.com/) sarebbe un posto migliore dove chiedere. – jww

risposta

32

Giusto per chiarire, le sessioni SSL/TLS non hanno nulla a che fare con le sessioni HTTP. (Alcune implementazioni potrebbero utilizzare l'ID sessione SSL/TLS come base per il mantenimento delle sessioni HTTP, ma questo è un cattivo progetto, dato che SSL/TLS può cambiare le sessioni in modo completamente indipendente rispetto a ciò che sta facendo HTTP).

In termini di bilanciamento del carico, si ottiene un paio di opzioni:

  • Utilizzare un bilanciamento del carico che è la tua SSL/TLS endpoint. In questo caso, il bilanciamento del carico verrà eseguito a livello HTTP: il client si connetterà al bilanciamento del carico e il bilanciatore del carico scollega la connessione SSL/TLS per passare il contenuto HTTP (quindi in chiaro) ai suoi dipendenti.

  • Utilizzare un servizio di bilanciamento del carico a livello TCP/IP, che reindirizza l'intera connessione TCP direttamente a un nodo di lavoro. In questo caso, ogni nodo di lavoro dovrebbe avere il certificato e la chiave privata (che non è necessariamente un problema se sono amministrati in modo coerente). Utilizzando questa tecnica, il bilanciamento del carico non esegue alcuna elaborazione HTTP (poiché non guarda all'interno della connessione SSL/TLS): da un lato ciò riduce l'elaborazione eseguita dallo stesso load balancer, dall'altra per esempio, ti impedirebbe di inviare a un particolare nodo di lavoro in base alla struttura dell'URL. Entrambi i metodi hanno i loro vantaggi e svantaggi.

+3

Buona risposta! Uno svantaggio del secondo metodo che potresti voler menzionare è che il bilanciatore, dal momento che non può vedere la richiesta HTTP all'interno di tutto il protocollo SSL, non può aggiungere un'intestazione che indichi l'IP del client reale; così al server web, sembrerà che tutte le richieste provengano da un singolo client Web: l'indirizzo IP del bilanciamento del carico stesso. –

+0

@Brandon Craig Rhodes, potresti essere in grado di far sì che il load balancer invii il pacchetto come se provenisse dal client iniziale, come possono fare i reverse NAT. – Bruno

+0

- true, ma solo nel caso in cui modifico tutti i server affinché utilizzino il bilanciamento del carico come gateway TCP in modo che tutti i pacchetti che tornano indietro verso gli IP client arbitrari passino attraverso il bilanciatore. E per quanto ne so, è possibile solo se eseguo effettivamente le macchine sulla stessa LAN in modo che abbiano accesso a livello Ethernet alle rispettive interfacce di rete? (E quindi non è possibile con host arbitrari da un provider di server cloud?) –

Problemi correlati