• 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.

  • 相关阅读:
    如何生成a1,a2,a3,a4这样的变量名
    Swiper说明及API手册说明
    Centos下搭建 tomcat https服务器详解(原创)
    IOS 2D游戏开发框架 SpriteKit-->续(创建敌对精灵)
    AFNetworking 3.1
    IOS 2D游戏开发框架 SpriteKit-->续(postion,锚点,游戏滚动场景)
    动态加载HTML后使用query修改标签样式
    objective-c IOS应用更新
    Objective-c 动画
    java servlet上传centos服务器
  • 原文地址:https://www.cnblogs.com/linlf03/p/9420579.html
Copyright © 2020-2023  润新知