zoukankan      html  css  js  c++  java
  • Nginx + Tomcat搭建集群

    一、Tomcat集群带来的好处

    1.提高服务的性能,并发能力,以及高可用性

    2.提供项目架构的横向扩展能力

    二、Tomcat集群实现原理

    通过Nginx负载均衡进行请求转发

    三、Nginx + Tomcat搭建集群

    (一)、修改hosts文件

    1. windows修改hosts 文件

    c:WindowsSystem32driversetchosts

    127.0.0.1 www.water.com

    2. linux修改hosts文件

    vi /etc/hosts

    (二)、启动Nginx

    windows  nginx.exe

    windows下nginx进程杀不掉,请在cmd用如下命令

    taskkill /fi "imagename eq nginx.EXE" /f

    Linux: usr/local/nginx/sbin/nginx.sh 

    进入sbin目录

    执行  .sudo ./nginx

    (三)、修改

    修改配置文件

     

    如上图,如果有域名,可以将127.0.0.1 替换成域名

    修改配置文件后重启:

     [... sbin]# ./nginx -s reload

    最后,访问nginx,会交替显示8080或者9090的网页

    四、Nginx负载均衡算法

    1、轮询算法

    默认采用轮询算法

    upstream tomcats{
            server 192.168.6.1:8080;
            server 192.168.6.2:8080;
       }
    

      

    location配置

    location / {
                proxy_pass http://tomcats;
    }
    

      

    2、权重

    upstream tomcats{
            server 192.168.6.1:8080 weight 2;
            server 192.168.6.2:8080 weight 1;
       }  

    weight为权重,当服务器配置比较好时,可以分配更大的权重。

    3、ip_hash

    upstream tomcats{
          ip_hash;
          server 192.168.6.1:8080;
          server 1192.168.6.2:8080;
       }
    

    ip_hash 可以保证用户访问可以请求到上游服务器中的固定的服务器,前提是用户ip没有发生更改。

    注意: 不能把后台服务器直接移除,只能标记为down,这样才能让hash算法计算的服务器不改变。  

    4、url_hash

    upstream tomcats{
          url hash;
          server 192.168.6.1:8080;
          server 1192.168.6.2:8080;
       }
    

      

    5、least_conn

    upstream tomcats{
          hash $request_uri;
          server 192.168.6.1:8080;
          server 1192.168.6.2:8080;
       }
    

      

    五、upstream指令参数

    max_conns :用来限制同时连接到upstream负载上的单个服务器的最大连接数,作用是可以对单个服务器进行限流,防止服务器超负荷运转.默认值为0,则表示没有限制

    slow_start: 商业版Nginx才有

    down: 不访问192.168.6.1这台机器

    upstream tomcats{
            server 192.168.6.1:8080 down;
            server 192.168.6.2:8080;
            server 192.168.6.3:8080;
       } 
    

      

    backup

    upstream tomcats{
            server 192.168.6.1:8080 backup;
            server 192.168.6.2:8080;
            server 192.168.6.3:8080;
       }   

    当前面2和3两台宏机后,备用机192.168.6.1将加入集群,被用户访问。

    max_fails: 表示失败几次,则标记server已宏机,踢出上游服务。

    fail_timeout: 表示失败重试时间

    假设目前配置如下:

    max_fails=2 fail_timeout=15s

    则代表在15秒内请求某一server失败达到2次后,则认为该server已经挂机或者宏机,随后再过15秒,这15秒不会有新的请求到达刚刚挂掉的节点上,而是会请求正常运作的server,15秒后会再有新请求尝试连接挂掉的server。15秒后会再有新的请求尝试连接挂掉的server,如果还是失败,重复上一过程,直到恢复。

    六、keepalive提高吞吐量

    配置:

    upstream tomcats{
            server xx.xx.xx.xx:8080;
            keepalive 32;
       }
    

    location 配置如下

            location / {
                proxy_pass http://tomcats;
                proxy_http_version 1.1;
                proxy_set_header Connection "";
            }
    

      

     

    测试机器 mobilexxx.exxx.com

    如下图所示,未设置keepalvie的吞吐量为118,设置后为160.

  • 相关阅读:
    网络基础之网络协议篇
    JVM-07-执行引擎
    JVM-06-对象实例化、内存布局、访问定位以及直接内存
    JVM-05-方法区
    JVM-04-堆
    JVM-03-本地方法接口和本地方法栈
    JVM-02-程序计数器 虚拟机栈
    JVM-01-类加载子系统
    JVM-00-引言
    swagger
  • 原文地址:https://www.cnblogs.com/linlf03/p/9420579.html
Copyright © 2011-2022 走看看