2016-06-03 15 views
7

Il progetto su cui sto lavorando si basa su più server che utilizza il bilanciamento del carico. Il problema è che non posso mantenere la sessione PHP attraverso tutti i server. Qual è il modo migliore per gestire la sessione su Load Balancer ...?Come mantenere la sessione su Load Balancer?

risposta

9

Posso pensare a questi due metodi per questo scopo.

  1. Utilizzare un server di applicazioni Web cluster in cui la sessione sono disponibili per tutti i server
  2. informazioni a livello di
  3. Usa IP per mantenere l'affinità tra un utente e un server
+0

Grazie muzammil, è utile, .. Penso che possiamo anche condividere le informazioni sulla sessione dell'utente in un database o un file system sui server delle applicazioni. –

+0

felice di aiutare :) –

0

Dig il modo per memorizzare sessione all'interno DB che mantiene tutti i tuoi server multipli. I server ottengono sempre lo stesso _PHPSESSID perché è stato scritto come cookie del dominio.

Quindi, se si conosce l'ID di sessione, si sa cosa interrogare dal DB che serve le sessioni.

6

SSL operativo & Load Balancer, è normale mettere SSL sul server di bilanciamento del carico, ma non sui server back-end. Quindi hai solo bisogno di un certificato su un server. Il servizio di bilanciamento del carico parla quindi con i server back-end utilizzando semplicemente HTTP. Ciò ovviamente richiede che i server back-end non siano direttamente accessibili da internet. Questo servizio di bilanciamento del carico è responsabile della decrittografia della richiesta, ma sarà anche in grado di ispezionare la richiesta di un jsessionid.

+0

Che cosa ha a che fare SSL con la domanda? Come è stato possibile ottenere 4 upvotes? – ceejayoz

+0

Le sessioni persistenti funzionano bene con "Apache" come bilanciamento del carico. Dovresti controllare Apache "mod_proxy" e "mod_proxy_balancer" –

+0

È grandioso, ma la tua risposta non dice nulla sulle sessioni persistenti. – ceejayoz

Problemi correlati