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 模块的主要内容,如果未能解决你的问题,请参考以下文章