24,923
社区成员




Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
ProxyPass / balancer://mycluster stickysession=ROUTEID
#nofailover=On
#ProxyPreserveHost On
<Proxy balancer://mycluster>
BalancerMember http://10.0.0.107:10018 route=1
BalancerMember http://10.0.0.107:10019 route=2
</Proxy>
ProxyPassReverse / balancer://mycluster
upstream a.com {
ip_hash;#就是这
server 192.168.1.2;
server 192.168.1.3;
}
加上ip_hash以后 访问时 通过hash函数计算 会将你的ip分配到一个负载服务器上 你的访问ip是固定的 那么不论你如何访问
nginx总能将你的请求分发到那台服务器上
比如你的ip是127.0.0.1 他计算了你的ip以后将你的请求分到A 服务器上了 A 服务器上记录了你的session 那么只要你IP不变 无论如何访问 都会将你分到A 服务器上 也就可以保持会话控制了upstream a.com {
server 192.168.1.2;
server 192.168.1.3;
}
为了方便叙述 下边说所的A 针对的就是1.2 B 就是1.3
这就完了 重启后测试即可 记得把做web的虚拟机IP填写对就可以 后端可以跟nginx 也可以接apache
这种配置得特点是 每个访问一次 你可以再A,B上分别 echo一段话比较一下 第一次访问的A 第二次就分到B上边去了 结果就是
要想办法解决session
好在还有另一种配置方式 简单的更是无语
upstream a.com {
ip_hash;
server 192.168.1.2;
server 192.168.1.3;
}
然后你会发现你的所有访问都只能访问到一个服务器上去 这就是IP_HASH的奇妙 解决seseion问题
还有种更牛逼的 实际情况下 web服务器也有性能区别 我想让性能好的多承担点 怎么办呢? 呵呵可以设置权重
upstream a.com {
ip_hash;
server 192.168.1.2 weight=10;
server 192.168.1.3 weight=20;
}
数值越高越表示权重越高 最高貌似是150吧 没记太住 可以和ip_hash一起用 嘿嘿 赶快尝试下吧
nginx做负载的有点是本身轻巧 性能比apache高太多 而且还可以配合动静分离(脚本和静态文件分离)配合反向代理 怎么一个爽字了得 需要相关资料的话扣我