码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx负载均衡简易配置

时间:2014-10-26 16:46:20      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   使用   sp   div   

多台Web服务器水平扩展,进行负载均衡对外服务,是一种很常见的方案。

常用方法用DNS轮询,LVS。

DNS轮询虽然有配置简单的有点,但无法实现健康检查,DNS修改需要较长时间失效,对于无域名的内部服务需要手动修改客户端hosts。

LVS实现功能强大,可配置项多,能实现会话保持,但消耗机器数多,不适合中型和小型项目。

其实Nginx也能实现负载均衡,而且配置简单,通过ip_hash也能实现会话保持。

配置方法:

1.轮询:

此种配置最为简单也最为常用,请求将会依次交给不同的服务器处理,但无法实现会话保持。

upstream 配置名称 {
    server 192.168.1.1:8080; # 服务器A
    server 192.168.1.2:8090; # 服务器B
    server 192.168.1.3:8100; # 服务器C
}

2.权重

此种配置适用于多台服务器配置有高低之分,需要根据实际配置情况分配请求,此方法依然无法实现会话保持。

#weight越大,处理请求的次数则越多,实际值=weight/sum(weight) * 总请求数
upstream 配置名称 {
    server 192.168.1.1:8080 weight=10;  # 服务器A
    server 192.168.1.2:8090 weight=20;  # 服务器B
    server 192.168.1.3:8100 weight=20;  # 服务器C
}

3.ip_hash

此配置根据ip的hash值决定处理请求的服务器,所以同一ip多个请求将交给同一服务器处理,这种方法可以解决会话保持的问题。

upstream 配置名称 {
    ip_hash;  # 使用ip_hash方法
    server 192.168.1.1:8080; # 服务器A
    server 192.168.1.2:8090; # 服务器B
    server 192.168.1.3:8100; # 服务器C
}

4.其他方法

籍由第三方扩展,Nginx还可以实现多种负载均衡算法,例如:url_hash、fair等等,由于实际使用较少,在此不一一赘述。

5.应用负载均衡

server {
    listen 80;
    location / {
        root   html;
        proxy_pass   http://配置名称;
        index  index.html index.htm;
    }
}

注意:请不要在upstream中设置的服务器上添加proxy_pass,否则会出现死循环,导致请求失败。

6.更多的upstream配置选项

#weight 默认为1,值越大权重越大,处理请求次数越多
#down 该服务器不会被转发请求
#backup 该服务器用于备份,只有其他服务器都失效时才使用
#max_fails 允许的最大失败次数
#fail_timeout 达到最大失败次数后,暂停处理请求的时间,单位:秒 

Nginx负载均衡简易配置

标签:style   blog   http   color   io   os   使用   sp   div   

原文地址:http://www.cnblogs.com/koboshi/p/4052064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!