nginx + tomcat 集群实现负载均衡

来源:互联网 发布:淘宝的五星评价在哪里 编辑:程序博客网 时间:2024/05/19 14:56

LNMP环境的搭建略过,详见:http://blog.csdn.net/pengyouchuan/article/details/6931666 LNMP搭建

重点nginx负载均衡,通过nginx实现tomcat的负载均衡

配置nginx负载均衡

    编辑nginx.conf
        vim /usr/local/nginx/conf/nginx.conf
    在server上面增加
     upstream  www.test.com {
              server  www.test.com:8888;
              server  www.test.com:8080;
        #ip_hash;   注:如果加入了ip_hash, 这种只能适用于当某个用户连接上了一台服务器后,他登陆之后所做的一切操作都只会在那一台服务器不会跳转到另外的服务器,如果那台服务器over掉了,则会自动退出,连接到另一服务器
    }
www.test.com 是自己的服务器,最好是用域名
upstream后面的名字要与proxy_pass 这个名字一样,建议upstream后面的名字,proxy_pass 后面的名字,server_name 后面的名字一致
示例:
  upstream  www.test.com {
              server  www.test.com:8888;
              server  www.test.com:8080;
    }

  #测试
 server
  {
   listen      80;
    server_name www.test.com;
    index index.htm index.html index.jsp;
   root  /home/htdocs/web/ROOT/;

    location ~ .*$
    {
      index index.jsp;
      proxy_pass http://www.test.com; 注:做了负载均衡,这个后面就不能再加端口
    }
    access_log logs/sp.imichat.com.log combined;
    error_page  404 = /404.html;
  }


注:如果负载均衡不成功,请检查是否没有经过nginx,80端口直接被转发到了tomcat服务的端口上

3、配置tomcat集群
    优化tomcat 最大并发数,编辑server.xml
             <Connector port="8080" maxHttpHeaderSize="8192"

               maxThreads="2048" minSpareThreads="100" maxSpareThreads="200"

               enableLookups="false" redirectPort="8443" acceptCount="500"

               connectionTimeout="20000" disableUploadTimeout="true" />


            <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">

        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" tcpListenAddress="127.0.0.1" />
    修改web.xml
        增加标签:<distributable/〉
            直接加在</web-app> 之前就可以了,这个是加入tomcat 的session 复制的,做tomcat 集群必须需要这一步,否则用户的session 就无法正常使用.