nginx配置负载均衡

Posted YWGH

tags:

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

1、负载均衡

首先说下什么是负载均衡。负载均衡是高可用架构最基础的组件,因为有负载均衡可以将许多请求分配到不同的后端服务器为客户端提供服务。即使这其中有机器因为某些原因而不能提供服务,也不会影响整个系统的使用。同样因为请求都被平均的分配到了不同后端服务器,所以单一服务器不必承受过高的负载,同样客户端也会有更好的用户体验。

 

2、配置实例

 

 

后端的tomcat运行的都是同一个应用,不过是ip不同而已,基本上就把后端的三个tomcat服务器看作一个就行。

只要保证前端nginx代理服务器能够访问后端的tomcat服务器就可以,即便不在同一个网段也没有问题。

默认tomcat已经可以正常运行,并且可以访问,下边看nginx的配置。

配置:

http {

       upstream testproject {

              server 192.168.8.2:8080;

              server 192.168.8.3:8080;

              server 192.168.8.4:8080 backup;

       }

 

       server {

              listen 80;

              server_name www.test.com/192.168.8.5;

              location / {

                     proxy_pass http://testproject;

              }

       }

}

上边是非常简单的负载均衡配置,并没有太多的其余的配置,只要配置成这样负载均衡基本就算是配置完毕。

讲解:

upstream要配置在http的字段。

upstream streamname   整个streamname是随便起什么名字都行,自己定义。

在upstream中配置上要被负载的服务器,只要填写后端能访问的地址+端口就行。

在被代理服务器的后端还可以加上调度中的状态

down

此server不进行负载均衡

backup

当所有参与负载的机器无法提供服务,启用此服务器

max_fails

允许请求失败的次数

fail_timeout

经过max_fails失败后,服务暂停的时间

max_conns

最大连接数

 

server中的配置

listen 80;   监听80端口

server_name url/ip ;如果是内网的话,只要配置上ip,如果是出公网,就配置上域名。

location里边配置上proxy_pass 后边是http://自己定义的负载均衡的名称

其实配置很简单。

 

负载均衡的配置参数还有很多,目前这里只讲解最基本的,这样配置完成后,其实已经就搭建好了负载均衡的架构,但是其中还会有很多的问题,例如session共享、还有轮询的方式等等。后边会有文章一一阐述。

以上是关于nginx配置负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——nginx作为负载均衡服务(负载均衡示例)

Nginx 负载均衡如何配置,高并发报502如何返回正常信息?

Nginx负载均衡简单配置

Nginx反向代理实现负载均衡配置图解

Nginx负载均衡配置实例详解

利用nginx实现Redis的负载均衡,应该怎么配置?