分类: Java
2014-11-07 21:15:31
很多时候,在技术或者其他原因下,我们无法通过对代码的优化来提高网站访问的速度,这时候,我们就会使用到负载均衡。
这里,我们会讲到nginx的几种主要的负载均衡的策略(关于nginx的安装和如何利用nginx进行转发,之前已经有文章了,这里就只是简单的提供负载均衡的配置。另:负载均衡会导致session问题,解决办法请看之前的文章)
1、轮询(默认方式)
顾名思义,这是一种轮流访问所有服务器的方式。这种方式为默认配置,优点是简洁。缺点也很明显,不能进行最优化调度,有可能有的请求需要的耗时较久。
在http区域里添加:
upstream demo{
server 192.168.1.1:8888;
server 192.168.1.2:8888;
}
在你的某个做转发的server里添加:
proxy_pass
2、加权轮询
这种方式是对轮询的改进,加入了权值的概念。
upstream demo{
server 192.168.1.1:8888 weight=1;
server 192.168.1.2:8888 weight=2;
}
Weight值越高,链接分配的几率越高。
3、ip_hash(基于ip的hash分配策略)
这是一种非轮询的方式,对于每个到达的请求,直接通过其请求的IP进行哈希的映射。可以解决负载均衡中session的问题。
upstream demo{
ip_hash;
server 192.168.1.1:8888;
server 192.168.1.2:8888;
}
4、基于服务响应式
这种方式是根据服务器端的动态响应,对每一个请求进行分配。这种方式能够自动根据当前的后端实际负载来优化。
upstream demo{
server 192.168.1.1:8888;
server 192.168.1.2:8888;
fair;
}