Nginx配置upstream实现负载均衡

摘要:
具体配置过程如下:1.在http节点下,添加upstream节点。upstreamlinuxidc{server10.0.6.108:7080;server10.0.0.85:8980;}2.将server节点下的location节点中的proxy_pass配置为:http://+upstream名称,即“http://linuxidc”.location/{roothtml;indexindex.htmlindex.htm;proxy_passhttp://linuxidc;}3.现在负载均衡初步完成了。除此之外,upstream还有其它的分配策略,分别如下:weight(权重)指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误.fail_timeout:max_fails次失败后,暂停的时间。

Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。

具体配置过程如下:

1. 在http节点下,添加upstream节点。

upstream linuxidc {
server 10.0.6.108:7080;
server 10.0.0.85:8980;
}

2. 将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“
http://linuxidc”.

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

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

除此之外,upstream还有其它的分配策略,分别如下:

weight(权重)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。

upstream linuxidc{
server 10.0.0.77 weight=5;
server 10.0.0.88 weight=10;
}

ip_hash(访问ip)

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

upstream favresin{
ip_hash;
server 10.0.0.10:8080;
server 10.0.0.11:8080;
}

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

upstream favresin{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
}

url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream resinserver{
server 10.0.0.10:7777;
server 10.0.0.11:8888;
hash $request_uri;
hash_method crc32;
}

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down 表示单前的server暂时不参与负载.

weight 默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout : max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend{ #定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11:9090 down;
server 10.0.0.11:8080 weight=2;
server 10.0.0.11:6060;
server 10.0.0.11:7070 backup;
}

免责声明:文章转载自《Nginx配置upstream实现负载均衡》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HTML超级链接详细讲解Log4j 2 配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

4--SpringCloud-Ribbon/OpenFeign周阳老师

2021:4--SpringCloud-Ribbon/OpenFeign https://www.cnblogs.com/coderD/p/14350076.html SpringCloud https://www.cnblogs.com/coderD/p/14350073.html SpringCloud 和 Eureka https://www.cnb...

springCloud组件详细解析

1 springcloud有哪些组件?  Eureka 服务注册中心  Ribbon 负载均衡  Zuul 网关  Fegin 客户端Web  Hsytri 熔断器  Bus 消息总线  Config 统一配置中心 2 什么是自我保护模式  springCould的服务注册中心会监控微服务的心跳。如果检测到心跳,那么这个时候服务注册中心进入自我保护模式...

Nginx实战-后端应用健康检查

原文链接:http://nolinux.blog.51cto.com/4824967/1594029?utm_source=tuicool&utm_medium=referral 公司前一段对业务线上的nginx做了整理,重点就是对nginx上负载均衡器的后端节点做健康检查。目前,nginx对后端节点健康检查的方式主要有3种,这里列出: 1 2...

nginx+tomcat做负载均衡,当某个tomcat宕机,会发生什么情况,如何解决?

使用两台Tomcat,一台nginx做了一个小实验:   步骤一:     当两台tomcat正常运行的情况下,访问http://localhost的速度是很很迅速的,通过修改主页内容也可以观察到是通过负载均衡得到的效果。   步骤二:     实验性的将其中一台tomcat服务器关掉(将8080端口的关闭),再查看http://localhost ,会发...

Nginx负载均衡会话共享

    在使用负载均衡的时候会遇到会话保持的问题,可通过如下方式进行解决 1.使用nginx的ip_hash,根据客户端的来源IP,将请求分配到相同服务器上 2.基于服务端的Session会话共享(mysql/memcache/redis/file)   在解决负载均衡会话问题我们需要了解session和cookie。 1.用户第一次请求服务端网站时,服务...

Keepalived+Nginx提供前端负载均衡+主从双机热备+自动切换

原文链接:http://unun.in/linux/156.html 方案: 采用两台Nginx服务器作为前端,提供静态web内容,分发web请求,一主一从,Keepalived实现状态监测,保证 Nginx正常对外提供服务,即主Nginx服务进程死掉之后,keepalived能够通过脚本或者程序检测机制,将网站的访问切换到从Nginx上 来。后端的web...