### keepalived配置html
### nginx安裝培訓java
- 安裝nginxlinux
``` cpp yum install nginx -y ```
- 調整nginx配置文件nginx
``` cpp [root@redis ~]# sed -e 's@ @@g;/^$/d;/^#/d' /etc/nginx/nginx.conf worker_processes1; events{ worker_connections1024; } http{ includemime.types; default_typeapplication/octet-stream; sendfileon; keepalive_timeout65; upstreammycluser { server192.168.58.30:8080; server192.168.58.30:8081; server192.168.58.10:8080; server192.168.58.10:8081; } server{ listen80; server_namelocalhost; location/{ roothtml; indexindex.htmlindex.htmindex.jsp; proxy_passhttp://mycluser; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerHost$host; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; proxy_redirectoff; } error_page500502503504/50x.html; location=/50x.html{ roothtml; } } } ```
### redis主從配置web
- 安裝redisredis
``` cpp yum install redis -y ```
- slave redis上添加slaveof 192.168.58.30 6379這一行,這就是兩者的區別express
``` cpp [root@mongo1 tmp]# sed -n '/^slaveof/p' /etc/redis.conf slaveof 192.168.58.30 6379 [root@mongo1 tmp]# ```
- 測試會話共享apache
- master上bootstrap
``` cpp [root@redis ~]# redis-cli -h 192.168.58.30 redis 192.168.58.30:6379> set name zhuima OK redis 192.168.58.30:6379> get name "zhuima" redis 192.168.58.30:6379> ```
- slave上tomcat
``` cpp [root@mongo1 webapps]# redis-cli -h 192.168.58.10 redis 192.168.58.10:6379> get name "zhuima" redis 192.168.58.10:6379> redis 192.168.58.10:6379> ```
### tomcat一機多實例配置
- 配置jdk
``` cpp [root@redis tmp]# tar xf jdk-7u60-linux-x64.gz -C /usr/local ```
- 配置jdk環境變量
``` cpp [root@redis local]# cat /etc/profile.d/java.sh export JAVA_HOME=/usr/local/jdk1.7.0_60 export PATH=$PATH:$JAVA_HOME/bin export JRE_HOME=$JAVA_HOME/jre [root@redis local]# source /etc/profile.d/java.sh [root@redis local]# java -version java version "1.7.0_60" Java(TM) SE Runtime Environment (build 1.7.0_60-b19) Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode) [root@redis local]# ```
- 配置多實例tomcat
``` cpp [root@redis local]# tar xf apache-tomcat-7.0.54.tar.gz -C /usr/local/ [root@redis local]# mv apache-tomcat-7.0.54/ tomcat1 [root@redis local]# cp -Rf tomcat1 tomcat2 ```
- 修改第二個tomcat的三個端口的配置信息
### 修改tomcat的content.xml文件
``` cpp [root@www conf]# cat context.xml <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /> <Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="192.168.58.30" port="6379" database="0" maxInactiveInterval="60"/> <!-- 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" /> --> </Context> ```
- 複製給其餘tomcat
``` cpp [root@redis conf]# yes | cp context.xml /usr/local/tomcat2/conf/ cp: overwrite `/usr/local/tomcat2/conf/context.xml'? [root@redis conf]# ```
``` cpp [root@redis conf]# for x in tomcat{1,2};do scp context.xml 192.168.58.10:/usr/local/$x/conf/;done root@192.168.58.10's password: context.xml 100% 1678 1.6KB/s 00:00 root@192.168.58.10's password: context.xml 100% 1678 1.6KB/s 00:00 [root@redis conf]# ```
### 客戶端驗證會話共享
- 測試文件192.168.58.30上面
``` cpp [root@redis webapps]# cat index.jsp <%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="blue">192.168.58.30:8081 Tomcat2 </h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("abc","abc"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html> ```
- 測試文件192.168.58.10上面
``` cpp <%@ page language="java" %> <html> <head><title>TomcatB</title></head> <body> <h1><font color="red">192.168.58.10:8080 Tomcat1 </h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("abc","abc"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html> ```
### 查看進程存在與否
``` cpp [root@redis conf]# ps -ef | egrep "[r]edis|[j]ava|[n]ginx" root 5814 1 1 10:34 pts/0 00:00:41 /usr/local/jdk1.7.0_60/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat1/endorsed -classpath /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat1 -Dcatalina.home=/usr/local/tomcat1 -Djava.io.tmpdir=/usr/local/tomcat1/temp org.apache.catalina.startup.Bootstrap start root 5830 1 1 10:35 pts/0 00:00:41 /usr/local/jdk1.7.0_60/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat2/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat2/endorsed -classpath /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat2 -Dcatalina.home=/usr/local/tomcat2 -Djava.io.tmpdir=/usr/local/tomcat2/temp org.apache.catalina.startup.Bootstrap start redis 5921 1 0 11:07 ? 00:00:02 /usr/sbin/redis-server /etc/redis.conf root 5989 1 0 11:19 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 5991 5989 0 11:19 ? 00:00:00 nginx: worker process [root@redis conf]# ```
### 延伸:關於tomcat部署項目的幾種方式
- 直接放到webapps的ROOT下面
- 刪除ROOT下的全部文件,把你的項目包解壓過去便可
- 直接放到webapps下面
- 不用操做原來的webapps下面的任何東西,server.xml也不用調整,直接解壓到該目錄下便可
- 定義context來定義項目文件目錄
- 經過修改server.xml來定義虛擬目錄
- 定義.conf/name/localhost定義一個xml文件
- 經過定義xml文件來定義虛擬目錄