lnmp环境+laravel框架+redis+多服务器负载均衡实现session共享案例
Laravel  /  管理员 发布于 4年前   1701
既然做了多服务器不过是主备还是集群都要考虑共享session的问题;先在测试服上调通在上线上;
1.安装它,redis服务器开放ip,模式,允许远程连接,这部分在redis.conf里面修改;
bing 127.0.0.1 改成 ip或0.0.0.0 不限制
protected-mode yes 改为 no
改完之后重载配置
ps -ef |grep redis 查看服务id kill -9 pid 在/usr/local/redis/bin/目录下操作 路径可能会跟我的不一样 ./redis-server /usr/local/redis/etc/redis.conf
或者重启服务器,然后远程测试一下看看效果telnet.png
2.laravel配置
//config/database.php
'redis' => [
'client' => 'predis',
'session' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 10,
],
],
//.env
24服务器
SESSION_DRIVER=redis
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
174服务器
#SESSION_DRIVER=file
SESSION_DRIVER=redis
SESSION_LIFETIME=120
REDIS_HOST=172.18.1.24
REDIS_PASSWORD=null
REDIS_PORT=6379
3.测试这里我用两台服务器nginx负载实现测试session共享(后面可能会详情写写)
##负载均衡 upstream pcphp.cardbaobao.com { server 172.18.1.24:88 weight=5; server 10.0.1.174:80 weight=3; } upstream mphp.cardbaobao.com { server 172.18.1.24:88 weight=5; server 10.0.1.174:80 weight=3; } ##upstream后面的名字必须跟你访问的域名保持完全一致,否则将无法代理。因为proxy_pass是根据$host来匹配的。 server { location /{ proxy_pass http://$host; #proxy_connect_timeout 2s; proxy_set_header Host $host; #proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ##本地静态资源访问规则 location /asset/ { alias /home/www/cbb_new/storage/app/public/asset/; autoindex on; } ##接口访问规则 location ^~ /api/ { proxy_pass http://pcphp.cardbaobao.com; } }
好了看看效果吧 24服务器上设置用户信息test存进session 174服务器echo session用户信息
24:
174:
redis里面的session数据:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号