1、首先安装jdk再安装Tomcat(jdk1.70 Tomcat7.0.40)
名称 IP 端口 tomcat JDK
tomcat1 10.7.0.193 8080 7.0.40 1.7.0_25
tomcat2 10.7.0.192 8080 7.0.40 1.7.0_25
[root@node1 java]# tar -zxf jdk-7u111-linux-x64.tar.gz -C /usr/local/java/
[root@node1 java]# vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_111 export JRE_HOME=/usr/local/java/jdk1.8.0_111/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH
[root@node1 java]# source /etc/profile
然后可以看到Java命令了
[root@node1 java]# java -version
2、安装Tomcat
[root@node1 java]# tar -zxf apache-tomcat-7.0.73.tar.gz -C /usr/local/
[root@node1 java]# cd /usr/local
[root@node1 java]# ln -sv apache-tomcat-7.0.73/ tomcat
[root@node1 java]# ls bin/
bootstrap.jar commons-daemon-native.tar.gz digest.sh startup.battool-wrapper.s catalina.bat configtest.bat setclasspath.bat startup.sh version.bat
catalina.sh configtest.sh setclasspath.sh tomcat-juli.jar version.sh
#里面全部是一些.sh的脚本和.jar的Java归档文件;Tomcat就是 用Java写的所以启动时会调用一些Java库,.bat为Windows的批处理脚本,用于windows启动时调用,其中catalina.sh为核心脚本
ls conf/
Catalina catalina.properties logging.properties tomcat-users.xml
catalina.policy context.xml server.xml web.xml
#其中server.xml为主配置文件;
#tomcat-users.xml为用户认证文件,Tomcat启动后会将这个文件读进内存中完成账号和密码的检测认证,所以这个文件的安全性很重要;#web.xml为Tomcat默认的应用程序部署描述符,一个web应用程序所谓的部署就是将它放在Tomcat某一个context某一个host能够访问到的路 径下,及将web应用程序所依赖的类装载进JVM的过程;
#context.html默认为上下文提供的配置文件
#catalina.pro[erties 用来定义应用程序自身属性的(启动JVM要定义许多属性),如所使用的内存大小,所使用的字符串缓冲池的大小,你的server loader加载器是什么,等等
#Catalina.policy用来定义Tomcat自身的安全和资源授权策略,如定义通过互联网访问时,哪些资源用户可以访问哪些资源用户不能访问;哪些资源能被装载,哪些资源不能被装载等等
#logging.pro[erties 用来定义你的日志级别,日志文件的路径等等
一般来说如果你不定义服务器自身的属性的话,只需修改.xml的文件
为Tomcat提供init脚本
[root@node1 java]# vim /etc/rc.d/init.d/tomcat
#!/bin/sh # Tomcat init script for Linux. # # chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. export JAVA_OPTS=‘-Xms64m -Xmx128m‘ #定义启动时堆内存最小64M,最大128M JAVA_HOME=/usr/local/java/jdk1.8.0_111 #Java的路径 CATALINA_HOME=/usr/local/apache-tomcat-7.0.73 #Tomcat的路径 export JAVA_HOME CATALINA_HOME #将Java和tomcat的路径输出为环境变量 exec $CATALINA_HOME/bin/catalina.sh $* #执行这个脚本
[root@node1 java]# service tomcat stop
[root@node1 java]# service tomcat start
3、安装redis、Nginx
Nginx安装
[root@localhost]tar zxvf nginx-1.8.0.tar.gz
[root@localhost] cd nginx-1.8.0
[root@localhost] ./configure && make && make install
[root@localhost]/usr/local/nginx/nginx
redis安装
[root@localhost]tar -zxvf redis-3.0.3.tar.gz
[root@localhost]make
[root@localhost]mkdir -p /usr/local/redis/bin
[root@localhost]mkdir -p /usr/local/redis/etc
[root@localhost]mkdir -p /usr/local/redis/var
[root@localhost]cp redis-benchmark redis-check-aof redis-cli redis-server redis-check-dump /usr/local/redis/bin/
[root@localhost]cp ../redis.conf /usr/local/redis/etc/
#修改配置文件,一般需要把daemonize no 改为 daemonize yes其他的看需要修改。
[root@localhost]/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
#测试 /usr/local/redis/bin/redis-cli
redis> set name asd123
OK
redis> get name
"asd123"
成功
4、配置session共存
修改nginx.conf加上:
upstream backend { server 10.7.0.193:8080 max_fails=1 fail_timeout=10s; server 10.7.0.192:8080 max_fails=1 fail_timeout=10s; }
修改nginx.conf的location成
location / { root html; index index.html index.htm; proxy_pass http://backend; }
重启Nginx
下载tomcat-redis-session-manager相应的jar包,主要有三个:(官网可能有问题需再下载tomcat-juli-adapters.jar和tomcat-juli.jar两个包,可以使用http://download.csdn.net/detail/qinxcb/8279761下的tomcat-redis-session-manager.jar)
wget https://github.com/downloads/jcoleman/tomcat-redis-session-manager/tomcat-redis-session-manager-1.2-tomcat-7-Java-7.jar wget http://central.maven.org/maven2/redis/clients/jedis/2.5.2/jedis-2.5.2.jar wget http://central.maven.org/maven2/org/apache/commons/commons-pool2/2.0/commons-pool2-2.0.jar
修改两tomcat的context.xml:
<Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <!-- Uncomment this to enable Comet connection tacking (provides events on session expiration as well as webapp lifecycle) --> <!-- <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> --> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="10.7.0.194" port="6379" database="0" maxInactiveInterval="60" /> </Context>
在tomcat/webapps/test放一个index.jsp
<%@ page language="java" %> <html> <head><title>TomcatA</title></head> <body> <table align="centre" border="1"> <tr> <td>Session ID</td> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html> sessionID:<%=session.getId()%> <br> SessionIP:<%=request.getServerName()%> <br> SessionPort:<%=request.getServerPort()%> <% //为了区分,第二个可以是222 out.println("This is Tomcat Server 1111"); %>
通过访问http://10.7.0.194/test/
Session ID4D948D3222B49F03A6696FF2550B4764
Created on1487208175588
sessionID:4D948D3222B49F03A6696FF2550B4764
SessionIP:backend
SessionPort:80 This is Tomcat Server 2222
Session ID4D948D3222B49F03A6696FF2550B4764
Created on1487208175588
sessionID:4D948D3222B49F03A6696FF2550B4764
SessionIP:backend
SessionPort:80 This is Tomcat Server 1111
可以看到虽然Server从1111变为2222,但session的创建时间没有变化,这就完成了session共享。
原文:http://neji1983.blog.51cto.com/3330124/1898349