2010-07-13 57 views
1

我們正在用PHP開發一個網站,我們必須使用會話。該網站將發佈在服務器羣集中。我們怎樣才能做到這一點?在服務器羣集中使用PHP會話有問題嗎?

謝謝。

+0

對於類似的問題http://stackoverflow.com/questions/994935/php-sessions-in-a-load-balancing-cluster-how給出了很多詳細的答案 – 2010-07-13 16:52:16

回答

3

是的這是可能的,你需要將你的會話存儲在像數據庫這樣的中央位置。這是非常簡單,只需要你做一些修改session_set_save_handler - 有你需要遵循here

0

共享NFS掛載會話目錄將是一種選擇的過程中一個很好的例子,雖然我總是發現nfs的性能有點慢。替代方案是使用會話的memcache或數據庫編寫自己的會話處理程序。

另一種選擇是使用sticky sessions負載平衡您的Web服務器,這將確保來自同一個客戶端的請求始終在會話過程中轉到同一服務器。

0

如果您有多個PHP框,您需要一箇中央會話存儲。

您的最佳選擇可能是數據庫(來自閱讀者的答案的鏈接是一個很好的解釋)或專用memcache框。

1

我會使用memcache來存儲您的會話。這比將它們存儲在數據庫或磁盤中要快得多。

數據庫存儲是好的,但當您的網站流量非常高時,您將需要更多的數據庫。當您的網站獲得大量流量時,磁盤上的會話也會導致很多IO問題。另一方面,Memcache比數據庫和文件要好得多。

我個人使用memecache和我工作的網站每天獲得數百萬次點擊。我從來沒有將會話存儲在memcache中有任何問題。