nginx upstream 模块

Posted gaollard

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx upstream 模块相关的知识,希望对你有一定的参考价值。

upstream 模块主要用来实现服务器的负载均衡,这也是大多数公司选择 nginx 而不是 apache 的原因。

upstream 简单配置步骤

(1)在http节点下,加入upstream节点

upstream mallServer { 
      server 127.0.0.1:8090;
      server 127.0.0.1:8091;
}

(2) 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称

location / { 
            root  html; 
            index  index.html index.htm; 
            proxy_pass http://mallServer;
}

这样负载均衡初步完毕了,upstream依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。尽管这样的方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。这适用于图片服务器集群和纯静态页面服务器集群。

upstream 高级配置

为了满足其他需求,upstream 还有其他的分配策略。

(1) weight(权重)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。哪一台服务器的性能更好时,你可以给与它更高的权重分配。

upstream mallServer { 
      server 127.0.0.1:8090 weight=2;
      server 127.0.0.1:8091 weigth=8;
}

(2)ip_hash(访问ip)

每一个请求按访问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。

upstream mallServer {
ip_hash;
server 127.0.0.1:8090;
server 127.0.0.1:8091;
}

(3)fair(第三方)

按后端服务器的响应时间来分配请求。响应时间短的优先分配。





以上是关于nginx upstream 模块的主要内容,如果未能解决你的问题,请参考以下文章

[转帖]nginx upstream模块--负载均衡

nginx upstream 模块

nginx安装nginx_upstream_check_module模块

Nginx upstream模块

Nginx中upstream模块实现PHP服务器的负载均衡

Nginx Upstream模块