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
[java]# tar -zxf jdk-7u111-linux-x64.tar.gz -C /usr/local/java/
[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
[java]# source /etc/profile
然后可以看到 Java 命令了
[java]# java -version
2、安装 Tomcat
[java]# tar -zxf apache-tomcat-7.0.73.tar.gz -C /usr/local/
[java]# cd /usr/local
[java]# ln -sv apache-tomcat-7.0.73/ tomcat
[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 脚本
[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 $* #执行这个脚本
[java]# service tomcat stop
[java]# service tomcat start
3、安装 redis、Nginx
Nginx 安装
[]tar zxvf nginx-1.8.0.tar.gz
[] cd nginx-1.8.0
[] ./configure && make && make install
[]/usr/local/nginx/nginx
redis 安装
[]tar -zxvf redis-3.0.3.tar.gz
[]make
[]mkdir -p /usr/local/redis/bin
[]mkdir -p /usr/local/redis/etc
[]mkdir -p /usr/local/redis/var
[]cp redis-benchmark redis-check-aof redis-cli redis-server redis-check-dump /usr/local/redis/bin/
[]cp ../redis.conf /usr/local/redis/etc/
#修改配置文件,一般需要把 daemonize no 改为 daemonize yes 其他的看需要修改。
[]/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://www.bubuko.com/infodetail-1947663.html