2011-02-23 50 views
3

我正在開發部署到Amazon Web Services的PHP Web應用程序。我們在自動擴展的應用程序服務器之前安裝了負載平衡器。自動擴展服務器上的PHP會話

我們目前面臨的問題是處理會話。雖然粘性會話是一個合理的解決方案,但我們希望持續很長時間(理想情況下爲幾周)。這可能會損害負載平衡器的性能。此外,使用自動縮放將意味着,我們會不時刪除服務器,從而丟失所有活動會話。當然,我們可以使用通用數據庫來存儲會話,但是如果每個請求都需要再次往返於數據庫,我會關心性能。

如果您能提出任何適合您的解決方案,或者我們可以嘗試的任何想法,我將不勝感激。

預先感謝您的幫助, 羅斯

+0

給集中會話服務器基於memcahed/db的會話有什麼想法嗎? – Zimbabao 2011-02-23 10:53:09

+0

@Zimbabao緩存MySQL目前是我們的領跑者。這對你有效嗎? – 2011-02-23 11:00:29

+1

用於2個前端框的db會話。 memcached解決方案對我來說也很好,請點擊這裏查看http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/ – Zimbabao 2011-02-23 11:11:16

回答

2

我會用其中的會話存儲在一個於數據庫的自定義會話的解決方案。

這樣,所有的網絡服務器都可以訪問相同的會話存儲,並且您可以爲自己決定應該保留一個會話多長時間。

你可以構建一些與PHP常規會話一起工作的東西,或者一個完全獨立的類來處理它們。

我做了類似的工作,可以在不同的服務器上共享asp和asp.net之間的會話。

如果性能問題,請爲會話使用單獨的數據庫,memcached或mysql集羣(也存儲內存)或者mongoDB。