Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享

声明:本人还在学习过程中,特写此博客记录搭建步骤,难免有不足之处,请各位兄台多多包涵,谢谢

1.nginx配置

首先,下载nginx,我这里使用的是nginx-1.8.1版本,下载地址是点击打开链接
解压后得到以下目录
Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享_第1张图片
修改conf目录里面的nginx.conf配置文件,配置如下:

sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65; #长连接超时时间,单位是秒

    gzip  on; #启用Gzip压缩

    #服务器的集群
    upstream  localhost {  #服务器集群名字,要与location /中的proxy_pass一致
        #server   172.16.21.13:8081 weight=1;#配置要集群的tomcat的ip地址和端口   weight是权重的意思,权重越大,分配的概率越大。 
        server    127.0.0.1:8080  weight=1; 
        server    127.0.0.1:8081  weight=1;
    }   
    server {
        listen       80;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;   

        location / {
            proxy_pass http://localhost;
            proxy_redirect default;
        }
    }

好了,nginx就配置完了,nginx常用的命令有以下三个:
1.start nginx (启动)
2.nginx -s stop (关闭)
3.nginx -s reload (重新加载,当修改完配置文件的时候可以使用)

2.Tomcat配置

安装两个tomcat,修改每个tomcat的conf目录下的server.xml配置文件
1.第一个要修改的端口号

<Server port="8006" shutdown="SHUTDOWN">

2.第二个要修改的端口号

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>

3.第三个要修改的端口号

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

最后还要配置session共享,找到已经注释的

在它下面加上以下配置

        
        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  
                 channelSendOptions="6">  

          <Manager className="org.apache.catalina.ha.session.BackupManager"  
                   expireSessionsOnShutdown="false"  
                   notifyListenersOnReplication="true"  
                   mapSendOptions="6"/>  
            
          <Channel className="org.apache.catalina.tribes.group.GroupChannel">  
            <Membership className="org.apache.catalina.tribes.membership.McastService"  
                        address="228.0.0.4"  
                        port="45564"  
                        frequency="500"  
                        dropTime="3000"/>  
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"  
                      address="auto"  
                      port="5000"  
                      selectorTimeout="100"  
                      maxThreads="6"/>  

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">  
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>  
            Sender>  
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>  
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>  
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>  
          Channel>  

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"  
                 filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>  

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"  
                    tempDir="/tmp/war-temp/"  
                    deployDir="/tmp/war-deploy/"  
                    watchDir="/tmp/war-listen/"  
                    watchEnabled="false"/>  

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>  
        Cluster>  
        

到这里所有的配置都完成了,因为我这里分别使用的是tomcat6和tomcat7,在启动nginx和tomcat后,浏览器输入http://localhost然后刷新就会得到以下的结果
Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享_第2张图片
Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享_第3张图片
由此可以知道已经实现了负载均衡,session共享这里就不展示了

你可能感兴趣的:(web项目,nginx,tomcat,session)