nginx+tomcat 实现负载均衡部署

nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。它主要有以下优点:

  1. 高并发连接:
    官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。
  2. 内存消耗少:
    在3万并发连接下,开启的10个Nginx 进程才消耗150M内(15M*10=150M)。
  3. 配置文件非常简单:
    风格跟程序一样通俗易懂。
  4. 成本低廉:
    Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。
  5. 支持Rewrite重写规则:
    能够根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。
  6. 内置的健康检查功能:
    如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。
  7. 节省带宽:
    支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。
  8. 稳定性高:
    用于反向代理,宕机的概率微乎其微

由于nginx的性能很好,因此国内很多大公司都在使用,最主要的原因也是nginx是开源免费的。除了上面描述的一系列功能,项目中主要用nginx来实现以下三个功能:

  • 动静分离
  • 反向代理
  • 负载均衡

负载均衡
nginx+tomcat 实现负载均衡部署_第1张图片
负载均衡主要有以下特点:

  • 分散后台服务器的负载
  • 自动去掉后台宕机的服务器
  • 缓存后台请求内容,加速请求速度

nginx负载均衡主要有以下五种策略:

  • 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  • weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  • ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  • fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  • url_hash(第三方)
    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

策略简单理解就是nginx 依据什么规则进行转发到各个服务器上面

环境搭建:
nginx+tomcat 实现负载均衡部署_第2张图片

2个tomcat都启动起来,tomcat相关知识这里不进行赘述

修改tomcat的title避免启动多了不知道哪个是哪个

我们可以去tomcat服务器中找打bin/Catalina.bat(Windows环境下,linux下找到.sh文件即可)文件,依次修改TITLE选项为app01、app02、app03:
nginx+tomcat 实现负载均衡部署_第3张图片
主要说下nginx的配置
主要是在config/nginx.config文件中:
使用upstream来配置tomcat集群,其主要配置如下,两台服务器,在最后一行可以指定负载均衡的策略,如果什么也不写默认轮询策略,这里我们使用轮询策略,主要是方便观察:
nginx+tomcat 实现负载均衡部署_第4张图片
这里我配置了2个
nginx+tomcat 实现负载均衡部署_第5张图片
观察效果
nginx+tomcat 实现负载均衡部署_第6张图片
nginx+tomcat 实现负载均衡部署_第7张图片
上面2个页面一直替换着显示,证明访问不通的tomcat

nginx+tomcat 实现负载均衡部署_第8张图片
但是这个带有session的系统一直进不去,也很正常,在tomcat1里面登录后,再访问进入tomcat2里面了 session没有需要重新登录,所以就一直再这个地方, 后面再学习session共享的问题吧

你可能感兴趣的:(#,nginx)