nginx+tomcat session 共享
阿新 • • 發佈:2018-01-29
lur smi tle cal list transport inter index.jsp ole
* tomcat1 192.168.10.153
* tomcat2 192.168.10.154
Tomcat 工作模式必須為Nio 模式。
##添加如下內容, 註意更換 address="192.168.10.154" 為本機IP vim /usr/local/tomcat/conf/server.xml <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="192.168.10.154" 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>
## 修改 web文件,在</web-app> 上面 添加一行內容
vim /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml
<distributable/>
##添加測試文件 vim index.jsp <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.util.*" %> <html> <head> <title>Cluster App Test</title> </head> <body> Server Info: <% out.println(request.getLocalAddr() + " : " + request.getLocalPort()+" ");%> <% out.println(" ID " + session.getId()+" "); // 如果有新的 Session 屬性設置 String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } %> </body> </html>
##配置 nginx負責均衡,進行測試
upstream tomcatserver {
server 192.168.10.153:8080 weight=5;
server 192.168.10.154:8080 weight=5;
}
location / {
proxy_pass http://tomcatserver; #來自jsp請求交給tomcat處理
}
nginx+tomcat session 共享