我需要在多个服务器之间共享PHP会话。但是,我不知道如何维护在一台服务器上创建的会话ID,以及如何将其传递给下一台服务器。
从本质上讲,客户端可以上传文件,但将文件发送到哪个服务器取决于哪个服务器没有过载。
例如,session_start()在test.com 上调用
一个AJAX帖子被发送到serv1.test.com。当我在serv1.est.com上调用session_start()时,我希望它提取test.com上session_start()创建的现有会话信息。然而,PHP会话似乎不是这样工作的?
我安装了Memcached,并遵循了以下指南:
https://www.digitalocean.com/community/tutorials/how-to-share-php-sessions-on-multiple-memcached-servers-on-ubuntu-14-04
我有一个集中的memcache服务器,test.com和serv1.test.com被配置为使用。但是,session_start()在每台服务器上创建一个唯一的会话,而不是重复使用同一个会话。如果我将PHPSSIONID发送到每个服务器,那么我就可以加载现有会话。
我该如何完成我想要做的事情?我可以在AJAX POST中将PHPSSIONID作为变量发送,但这不是安全风险吗?这是用户可以更改的内容。。。
如何让serv1.test.com继续使用test.com上设置的相同会话?如何将该会话ID安全地传递给serv1.test.com,以便使用session_ID("existingsessionid_from_test.com")打开现有会话?
解决方案是将session.cookie_domain设置为包含子域。
session.cookie_domain=".test.com"
感谢frz3993