是否可以將PHP會話文件存儲在由多個實例共享的磁盤上?這樣,用戶可以將請求發送到不同的服務器,並且他將擁有相同的會話數據。將PHP會話存儲在共享磁盤中
這種方法的缺點或風險是什麼? (我知道這不能很好地擴展,並且存在性能問題,但是我們假設性能和可伸縮性在這個階段並不重要)
是否可以將PHP會話文件存儲在由多個實例共享的磁盤上?這樣,用戶可以將請求發送到不同的服務器,並且他將擁有相同的會話數據。將PHP會話存儲在共享磁盤中
這種方法的缺點或風險是什麼? (我知道這不能很好地擴展,並且存在性能問題,但是我們假設性能和可伸縮性在這個階段並不重要)
您必須使用一個通用的掛接(NFS客戶端)的NFS服務器這些實例(服務器)將最終爲會話的存儲和訪問創造一個共同的地方。有關詳細信息,請this
根據PHP手冊,這是可以做到的,居然評論的人提成功地這樣做,你在這裏 http://php.net/manual/en/function.session-save-path.php#80901
你可以做到這一點,但它可能不會一個不錯的選擇。使用NFS時,由於鎖定模式,你的性能會很差,並且不能很好地擴展。
對於存儲PHP會話和機器之間共享它們,強烈建議使用外部服務 - 無論是memcache
(包括memcache
和memcached
PHP擴展提供易於建立會話存儲模塊),或redis
,或甚至是關係數據庫(例如MySQL)。在大多數情況下,所有這些都是比NFS更好的選擇。
嗯..剛剛閱讀你的評論關於可伸縮性不重要 - 好吧,如果你100%肯定的話,NFS會沒事的。這就是說,我仍然認爲memcahe更容易。 – shevron
使用memcached或類似的東西 – Gavriel
http://eddmann.com/posts/storing-php-sessions-file-caches-in-memory-using-tmpfs/ – Tushar
@Gavriel我沒有問到memcache。我詢問了共享磁盤的選項。謝謝。 –