Nginx负载均衡

前面我们说了反向代理,例子中用的是,两个请求请求同一个ip地址和端口,然后Nginx来根据域名调用不同的tomcat来进行请求处理及响应。

反向代理主要说的是:不同的请求 请求同一个Nginx服务器,Nginx服务器来决定由那个真正的业务服务器(eg:tomcat)处理某个请求。

下面说负载均衡

负载均衡一般是指,针对同一个(域名的)请求发送很多次,同时当后台有多个具有相同代码的真正的业务服务器工作时,由Nginx来将多次(或同时多个)的相同请求均匀的转发给待命的多个业务服务器,用以减轻单台服务器的压力,合理利用资源,提高响应速度。

比如我们一个应用的访问量特别大,一台服务器已经很吃力了,那么就要增加服务器来提供相同的服务,这时一般就需要Nginx来做负载均衡。

负载均衡的Nginx配置和反向代理基本一致,不同点在于:我们可以在 同一个 upstream tomcatserver { } 中添加多个tomcat,

eg:

这个就是最简单的负载均衡配置,当多次请求来时,Nginx默认会轮询调用两个tomcat来响应,即第一次请求由tomcat1响应,第二次就由tomcat2来响应,这样就把请求均匀的分散开了。

reload配置文件,发送请求测试:

我们看到,每次刷新请求,都会有不同的服务器来响应。

上面只是最简单的分配 方式,它几乎是将请求平均分配的,但是如果我们配置的两台服务器性能不一样,我们希望性能好的多提供一些服务,那么就要进行下面的配置了:

配置权重

权重默认是1,比如我们觉得8080的服务器性能好一些,给其增加权重配置 weight=3,另一个权重不配置(默认为1),那么就是说大概 有4次请求进来,3次会分配给8080,1次给8081

 

重新加载Nginx配置文件,我们再用浏览器访问,会发现,大多数情况都是由8080来提供服务。

注意:weigh权重值越高,处理请求的机会就越多。

其他权重配置的参数文档:

说明:

配置为down的请求不会转发给它。

配置为backup的,只有当其他所有正常服务器都挂了时才会将请求转发给它。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Keepalived+LVS+nginx搭建nginx高可用集群

       nginx是一款非常优秀的反向代理工具,支持请求分发,负载均衡,以及缓存等等非常实用的功能。在请求处理上,nginx采用的是epoll模型,这是一种基于事件监听的模型,因而其具备非常高效的请求处理效率,单机并发能力能够达到上百万。nginx接收到的请求可以通过负载均衡策略分发到其下一级的应用服务器,这些服务器一般是以集群方式部署的,因而在性能不

LNMP架构之负载均衡及HTTPS相关配置

本文索引:Nginx负载均衡ssl原理生成ssl密钥对Nginx配置sslNginx负载均衡负载均衡原理上就是代理,只不过通过设置多个代理服务器来实现多用户访问时的负载均衡。同时也可以在某个代理服务器无法访问时,切换到另外的代理服务器,从而实现访问不间断的目的。下面以qq.com为例

OpenResty之使用 Nginx 内置绑定变量

Nginx作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把他们缓存到请求cycle中,方便下一次获取使用。首先来看看Nginx对外都开放了那些API。$arg\_name:请求中的name参数$args:请求中的参数