• Nginx + Tomcat Windows下的负载均衡配置


    一、为什么需要对Tomcat服务器做负载均衡?
        Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果超过500的并发数会出现Tomcat不能响应新的请求的情况,严重影响网站的运行。同时如果访问量非常大的情况下,Tomcat的线程数会不断增加。因此会占据大量内存,严重时出现内存溢出的现象,这时需要重启Tomcat以释放内存,阻断了网站的运行。
        所以对Tomcat做负载均衡便很有必要。目前可以和Tomcat做负载均衡的主流服务器是Apache,但是Nginx由于功能多、配置简单等优点成为很多负载均衡服务器的首选。Nginx的并发数可达到50000,所以理论上可以和Tomcat以1:100的比例来配置,这边可以很好的解决网站并发瓶颈问题。

    二、Nginx+Tomca在Windows下负载均衡的配置:
        先秀一下我的环境: Nginx1.3.11 + Tomcat 6.0(2个)、Win 7。
        下面是配置过程:
        1、将nginx-1.3.11.rar直接解压到D:盘。
        2、将apache-tomcat-6.0.26.rar解压到D:盘,既然是做负载均衡将tomcat拷贝两份,分别命名tomcat_1、tomcat_2。
        3、将要发布的项目部署分别部署到两个Tomcat根目录下的webapps下,保证两个Tomcat下的项目名相同。
        4、修改tomcat_2的配置文件,该配置文件位于/conf下,文件名为server.xml, 修改其中的<Server port="8005" shutdown="SHUTDOWN">            为<Server port="8006" shutdown="SHUTDOWN">,修改其中的

    1
    2
    3
    <Connector port="8080 protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443"/>

            为 

    1
    2
    3
    <Connector port="8088 protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443"/>
    1
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    (ajp是一个协议,tomcat可以用来服务器集群,也可以在csdn找到更详细的ajp资料)为

    1
    <Connector port="7009" protocol="AJP/1.3" redirectPort="8443" />

    5、修改Nginx配置文件nginx.conf,该文件位于Nginx根目录下的/conf目录下
        a、在#gzip on;后面加入下面配置:

    1
    2
    3
    4
    5
    upstream localhost {
        server localhost:8080 weight=5;
        server localhost:8080 weight=5;
        ip_hash;
    }


        其中server localhost:8080为tomcat_1的启动地址, server localhsot:8088为tomcat_2的启动地址,ip_hash用于做session同步。 
        b、修改

    1
    2
    3
    4
    location / {
        root html;
        index index.html index.htm;
    }

        改为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    location / {
          root   html;
          index  index.html index.htm;
          proxy_pass   http://localhost;
          proxy_redirect    off;
          proxy_set_header   Host $host;
          proxy_set_header   X-Real-IP $remote_addr;
          proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
          client_max_body_size   10m;
          client_body_buffer_size   128k;
          proxy_connect_timeout   90;
          proxy_send_timeout   90;
          proxy_read_timeout   90;
          proxy_buffer_size   4k;
          proxy_buffers   4 32k;
          proxy_busy_buffers_size   64k;
          proxy_temp_file_write_size  64k;        
      }

             其中proxy_pass参数和upstream localhost{}对应。 

            经过上面这些步骤,负载均衡配置完成,下面分别启动tomcat_1、tomcat_2,然后双击nginx根目录下nginx.exe文件或者使用start nginx启动(关闭是: nginx -s stop),打开浏览器,输入地址: http://localhost便可看到tomcat的首页了。

    了解更多关于Nginx的配置: http://www.howtocn.org/doku.php

    ---------------------------------------------------------------------------------------

    后端是两台tomcat服务器,我们简称为node1 和node2,访问地址分别是 http://192.168.1.2:8080 和 http://192.168.1.4:8080

    前端使用nginx来对这两个服务进行负载均衡。

    首先下载apahce tomcat7 并在192.168.1.4和192.168.1.2上进行部署(可以分别修改两台服务器上部署的文件的index.jsp 用来区分node1和node2)

    node1:

    node2:

    下载 nginx server(目前稳定版是1.4.4),解压之后双击 nginx.exe启动

    conf目录下的nginx.conf文件是nginx的配置文件,我们在这里配置负载均衡

    下面给出配置文件,

    http {
    include mime.types;
    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;


    upstream localhost{ 
    #这里指定多个源服务器,ip:端口,80端口的话可写可不写 
    server 192.168.1.2:8080; 
    server 192.168.1.4:8080; 
    }

    server {
    listen 80;
    server_name localhost;

    location / {

    #启动代理

    proxy_pass http://localhost;
    }

    }

    }

    其中的upstream localhost这一项在原先的配置文件里边没有,需要加上。

    确保node1和node2两个节点可用,然后启动nginx 访问 http://localhost  nginx就会在node1和node2上做负载均衡。页面上会随机显示 NODE1或NODE2

  • 相关阅读:
    resin实现热部署配置
    tomcat实现域名访问步骤
    springboot学习笔记2---配置拦截器:
    springboot学习笔记2:搭建web项目
    springboot学习笔记1:springboot入门
    重识maven
    shiro学习笔记:remeberMe,多次登录锁死账号
    shiro学习笔记:授权管理
    springmvc定时任务及RequestBody注解
    springmvc处理异常
  • 原文地址:https://www.cnblogs.com/fx2008/p/4086403.html
Copyright © 2020-2023  润新知