JAVA Nginx+Tomcat负载均衡与session共享

最近简单的研究了下JAVA的负载均衡以及session的节享,查阅了很多资料,得到很大的帮助,搭建一个简单的环境从头到尾说清楚的,很多都是简单的描述,参考者还要翻阅大量的资料理解 。接下来我会从头到尾简单的搭建一下环境
需要用到的工具
1、Windows版本下载地址:http://nginx.org/en/download.html
2、tomcat 官网:http://tomcat.apache.org/

我以Tomcat7为例
1、现将Tomcat复制两份(TomcatA,TomcatB)
2、修改端口号,修改\TomcatA\conf\server.xml
改动事项,修改port后面的端口,两个Tomcat的端口不能重复,端口随意,防止出现冲突,建议改大一点
1)、<Server port="8005" shutdown="SHUTDOWN">
2)、<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
3)、<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

nginx的安装与配置
1、根据 上面的链接,下载,解压,放到任何一个目录即可。
2、打开conf文件夹下的nginx.conf进行配置
具体配置如下:

http {
    include mime.types;
    default_type application/octet-stream;
#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';
#access_log  logs/access.log  main;
    sendfile on;
#tcp_nopush     on;
#keepalive_timeout  0;
    keepalive_timeout 65;
#gzip  on;
    upstream local_tomcat {
        server localhost:18080;
        server localhost:28080;
    }
    server {
        listen 8888;
        server_name local_tomcat;
#charset koi8-r;
#access_log  logs/host.access.log  main;
        location /pbuild {
            proxy_pass http://local_tomcat;
        }
        location = /50x.html {
            root html;
        }
# location ~ \.(jsp|jspx|do|action)?$ {
#     root "d:/Tomcat/tomcat1/webapps/pbuild";
#     index index.jsp index.jspx index.do;
# 	proxy_pass http://local_tomcat;
# }
#error_page  404              /404.html;
# redirect server error pages to the static page /50x.html
#
        error_page 500 502 503 504  /50x.html;
    }
}

注意:upstream后面的local_tomcat必须与

       location /pbuild {
            proxy_pass http://local_tomcat;
        }

proxy_pass http://后面的一致,至于起什么名随意。

    upstream local_tomcat {
        server localhost:18080;
        server localhost:28080;
    }

server是TomcatA,TomcatB所在的机器,端口是访问tomcat下web应该程序的端口。

同时

    server {
        listen 8888;
        server_name local_tomcat;

server_name后面的内容是访问负载均衡服务的名或IP。listen是端口号

以上配置nginx与tomcat的负载均衡就结速了,详细的配置说明可以自行查看相关的文章。

以下内容配置session共享
1、打开Tomcat下的server.xml文件,在Engine节点下面增加以下节点

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
        <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"/>
        </Channel>
      </Cluster>

程序在运行时,通过address这个地址,判断是一个网络内的tomcat,这时会把这个网络内的tomcat session同步。
2、在Tomcat下webapp下找到自己的应用程序,打开应用程序里的web.xml文件,在web-app节点下增加以下节点

  <distributable/>

以上就设置完了session共享,
注意:以上设置,负载均衡对应有几个Tomcat,相同的代码就设置几次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值