关于PHP多服务器识别cookie的问题
PHP中文网
PHP中文网 2017-04-10 18:09:51
[PHP讨论组]

是这样的,我们有多台服务器做负载均衡,跑的代码都一样,域名也一样,如果在浏览器设置了cookie,浏览器访问不同的服务器,cookie还会正确的识别吗?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHP中文网

可以的。但是如果保存有SESSION_ID 就不行了。

PHP中文网

PHP的session默认是存文件的, 所以不支持分布式服务器.

解决方案为使用redis作session, 多台服务器共用一个redis session库

  1. 安装redis-server 及 php-redis扩展

  2. 配置php.ini

# 启用redis存放session
session.save_handler = redis    # 默认为files
# redis连接配置
# RedisServer: redis服务器地址,如IP
# database = redis数据库, 默认为0
# prefix = 存入redis库的key前缀, 此为PHPSESS_
# timeout = 连接超时(秒)
# persistent = 是否使用长连接
session.save_path = "tcp://RedisServer:6379?database=9&prefix=PHPSESS%3A&timeout=2.5&persistent=1"

至于session和cookie的使用, 平时php代码里该怎么用还是怎么用
另外, 有个序列化的性能, php默认的序列化性能不是很好
建议安装 php igbinary扩展, 然后

# session使用igbinary序列化, 默认为php
session.serialize_handler = igbinary

同理, 如果你有PHP中使用redis或memcached, 启用igbinary序列化会略提升些性能

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号