Windows搭载Nginx集群

本例使用tomcat为服务器
1、新建两个服务器,命名为tomcat1和tomcat2
2、将web项目分别复制到tomcat1和tomcat2的webapps 目录下
3、修改tomcat1和tomcat2的server.xml文件
        tomcat1:
               (1)、 <Server port="8005" shutdown="SHUTDOWN"></Server>
                            修改server的port+10
                            <Server port="8015" shutdown="SHUTDOWN">
</Server>

                (2)、 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />
                            修改connector的port+10, redirectPort+10
                            
<Connector port="8090" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8453" />

                (3)、<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
                            修改connector的port+10,redirectPort+10
                            <Connector port="8019" protocol="AJP/1.3" redirectPort="8453" />

    
tomcat2:
               (1)、 <Server port="8005" shutdown="SHUTDOWN"></Server>
                            修改server的port+20
                            <Server port="8025" shutdown="SHUTDOWN"></Server>

                (2)、<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />
                            修改connector的port+20, redirectPort+20
                            <Connector port="8100" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8463" />

                (3)、<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
                            修改connector的port+20,redirectPort+20
                            <Connector port="8029" protocol="AJP/1.3" redirectPort="8463" />

4、启动tomcat1和tomcat2
        注意:如果系统环境变量中配置了CATALINA_HOME,则试图启动复制多份的tomcat,每次都会去启动 CATALINA_HOME目录下的tomcat,而不是去启动复制的tomcat,导致address会冲突。
        解决方法:
            方法一: 
                    将环境变量中的
CATALINA_HOME删除
            方法二:
                    修改tomcat1和tomcat2的startup.bat和shutdown.bat文件 
                            将
if not "%CATALINA_HOME%" == "" goto gotHome 该句中的not去掉,
                            让
CATALINA_HOME 设置为当前tomcat的路径,而不是去找环境变量中的。

5、修改nginx的配置文件nginx.conf
         (1)、 在http节点上添加集群节点(名字随意)
                    upstream xxx_server{
                        server 127.0.0.1:8090;
                        server 127.0.0.1:8100;
                    }
        
        (2)、
  修改server节点的location / 下的反向代理
                    新添加一个 proxy_pass http://xxx_server  (此处的url为http节点上添加的集群节点名字)
                    
location / {
                       ...
                        proxy_pass http://xxx_server;
                    }

6、启动nginx访问web项目
         http://localhost/项目名/....

7、session共享问题:
       原因:由于tomcat1,tomcat2部署了同一个工程,如果有数据直接存在于session,而nginx会负载均衡到随机的服务器上 。如果在刷新页面时跳转到另外一个服务器,之前的服务器上的session则会消失,导致数据丢失。

        
解决方式1:
                只能在windows下好使
                web服务器解决(广播机制)
                注意:tomcat下性能低
                修改两个地方:
                    1.修改多个tomcat的server.xml 支持共享
                            将引擎标签< Engine></ Engine>下的 
                                <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
                            注释去掉
                    2.修改项目的配置文件web.xml中添加一个节点<distributable />

        
解决方式2:
            可以将session的id放入redis中

        
解决方式3:
            保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,尤其在linux
            在nginx的配置文件中的 upstream节点中添加 ip_hash;  
                                    upstream xxx_server{
                                            server 127.0.0.1:8090;
                                            server 127.0.0.1:8100;
                                            
ip_hash; 
                                    }  



====================打个广告,欢迎关注====================

QQ:412425870
csdn博客:
http://blog.youkuaiyun.com/caychen
码云:
https://gitee.com/caychen/
github:
https://github.com/caychen

点击群号或者扫描二维码即可加入QQ群:

328243383(1群)



点击群号或者扫描二维码即可加入QQ群:

180479701(2群)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值