lnmp环境+laravel框架+redis+多服务器负载均衡实现session共享案例
管理员 发布于 4年前   622
既然做了多服务器不过是主备还是集群都要考虑共享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数据:
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
该博客于2020-12-7日,后端基于go语言的beego框架开发
前端页面使用Bootstrap可视化布局系统自动生成
是我仿的原来我的TP5框架写的博客,比较粗糙,底下是入口
侯体宗的博客
文章标签
友情链接