我们在aws中使用nginx运行php7,在AWS集群中处理会话,但是会话没有存储在are集群中。有时起作用,但大多数时候不起作用。
在php.ini中,已更改为session.save_handler = redis和session.save_path = "tcp://redis配置端点:6379“
在这方面请帮忙。
发布于 2018-05-02 22:04:33
您的会话保存处理程序被设置为redis,而不是redis群。请参阅:https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#session-handler
您需要确保redis群集是会话的注册保存处理程序。您可以在phpinfo()中检查。
您还在为您的save_path使用redis样式,而不是redis群集样式。这只需要主机名: save_path中的端口,但至少需要一个种子。它应该看起来类似于:
session.save_handler = rediscluster
session.save_path = seed[]=redis-config-endpoint:6379&option=value其中选项是在cluster.markdown文件中定义的任何选项(超时、read_timeout、持久、故障转移)。也许还会分发)。
主节点和从节点之间的故障转移和分发似乎没有文档化(我计划提出一个Github问题),但是如果每个节点上只有几个碎片和一个节点,我认为这应该可以工作(因为AWS不要求您列出每个节点的端点,只列出配置端点)。您实际上不需要指定任何选项。
您还需要调整会话垃圾收集的生存期,以及在给定的session_start()调用中发生这种情况的可能性,以确保清除旧会话。
https://serverfault.com/questions/870768
复制相似问题