負載均衡 Session共享機制


一般負載均衡內容有兩種形式,一種是靜態,另一種是動態,動態網站內容就可能需要進行交互,那么就涉及到session共享的問題。默認PHP是將session存儲在LocalDisk,如果是多台php主機之間進行負載,那么該如何共享session?今天我們就解決這個問題。

session會話共享文件有很多種方式:

分布式文件共享;NFS,NAS文件存儲等。

Nginx負載均衡ip_hash模塊,固定訪客到后端某台服務器。

將session存儲到數據庫中;例如MySQL,Memcached,Redis,Mongodb等。

我個人比較傾向於將session存儲到Redis數據庫,用這種方式來同步session共享,不僅不會加大數據庫的負擔,而且安全性比cookie更高,把session放到內存里面,比從磁盤文件中讀取會快很多。“有人認為;那我把所有的緩存軟件都安裝,速度豈不是更快,那就不是緩存加速了,而演變成了緩存庫了”。

php語言腳本默認不支持對Redis的操作,所以需要安裝第三方phpRedis擴展模塊,讓其支持對Redis的操作,至於如何安裝使用phpRedis,可以參考我前面寫的文章《phpRedis擴展模塊安裝配置使用》。此外這里還需要一台Redis服務器,請參閱《LinuxCentos7 Redis 3.2.9 源碼編譯安裝配置》。

1.修改PHP配置文件php.ini將session存儲到Redis中。

# vim /usr/local/php/etc/php.ini

session.save_handler = files
;session.save_path = "N;/path"

  


修改為:
# vim /usr/local/php/etc/php.ini

session.save_handler = files
;session.save_path = "N;/path"

;如果Redis有密碼連接方式
session.save_path = “tcp://10.10.204.66:6379?auth=password”
 

 


 

2.重啟php-fpm服務生效

# systemctl restart php-fpm

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM