linux安装nginx并配置tomcat负载均衡案例

1.本地在虚拟机中安装192.168.254.100以及192.168.254.110上安装两台tomcat8.5,修改两台tomcat的server.xml配置,添加使sessionid保持一致的配置如下:

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

  <Manager className="org.apache.catalina.ha.session.DeltaManager"
           expireSessionsOnShutdown="false"
           notifyListenersOnReplication="true"/>

  <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="4000"
              autoBind="100"
              selectorTimeout="5000"
              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.MessageDispatchInterceptor"/>
  </Channel>

  <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
         filter=""/>
  <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

  <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>
 

1.1别忘了web.xml增加<distributable/>标签

2.安装nginx,参考文章https://www.cnblogs.com/xxoome/p/5866475.html

3.修改nginx的conf.xml,配置两台服务器的负载均衡

 upstream tomcat-portal {
    server 192.168.254.100:8080;
    server 192.168.254.110:8080;
    }
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcat-portal;
            index  index.html index.htm index.jsp;
        }

    }

4.启动nginx、启动两台tomcat,在tomcat/webapps中增加查看session的jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>应用集群测试---session共享</title>
</head>
<body>
    <center>
        <b>服务器信息</b>
    </center>
    <hr />
    <%
        out.println("实际访问地址:" + request.getLocalAddr() + " : "
                + request.getLocalPort() + "<br>");
    %>
    <hr />
    <%
        out.println("<br> Session ID: " + session.getId() + "<br><hr/>");
        // 如果有新的 Session 属性设置
        String dataName = request.getParameter("dataName");
        if (dataName != null && dataName.length() > 0) {
            String dataValue = request.getParameter("dataValue");
            session.setAttribute(dataName, dataValue);
        }
        out.println("<b>Session 列表</b><br><hr/>");
        out.println("<table border=\"1\"><tr><td width=\"200\">属性名称</td><td width=\"300\">属性值</td></tr>");
        System.out.println("============================");
        Enumeration<String> e = session.getAttributeNames();
        while (e.hasMoreElements()) {
            String name = (String) e.nextElement();
            String value = session.getAttribute(name).toString();
            out.println("<tr><td>" + name + "</td><td>" + value
                    + "</td></tr>");
            System.out.println(name + " = " + value);
        }
        out.println("</table>");
    %>
    <hr />
    <div>
        <form action="test2.jsp" method="POST">
            <b>属性名称:</b><input type=text size=25 name="dataName">
            &nbsp;&nbsp;&nbsp;&nbsp <b>属性赋值:</b><input type=text size=25
                name="dataValue"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type=submit value="设置属性">
        </form>
    </div>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值