nginx+tomcat7+redis
安裝tomcat7
安裝nginx
安裝redis
tomcat-redis-session-manager項目目前只支持tomcat6和tomcat7
使用gradle編譯
wget https://services.gradle.org/distributions/gradle-4.4.1-bin.zip
unzip gradle-4.4.1-bin.zip
然後將它的bin加到PATH環境變量就可以使用gradle命令了
編譯tomcat-redis-session-manager
修改tomcat-redis-session-manager中的代碼
https://github.com/jcoleman/tomcat-redis-session-manager
下載tomcat-redis-session-manager的zip文件
unzip tomcat-redis-session-manager-master.zip
修改build.gradle文件
vim build.gradle
註釋掉47-49行,56-58行
47 //signing {
48 // sign configurations.archives
49 //}
56 // repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
57 // authentication(userName: sonatypeUsername, password: sonatypePassword)
58 // }
構建
到tomcat-redis-session-manager-master目錄下
gradle build
#如果gradle沒有加到PATH環境變量中,就用絕對路徑
顯示BUILD SUCCESSFUL說明構建成功
build/libs/下可以找到構建的tomcat-redis-session-manager-master-2.0.0.jar包
/root/.gradle/caches/目錄下可以找到jedis-2.5.2.jar、commons-pool2-2.2.jar
將這三個包放到tomcat的libs目錄下
設置nginx+tomcat的負載均衡
本次測試使用的一臺機器,運行了tomcat雙實例
服務 | 端口 | 主配置文件 |
nginx | 80 | /etc/nginx/conf.d/default.conf(yum安裝) ${NGINX_HOME}/conf/nginx.conf(二進制安裝) |
tomcat1 | 8080 | /tomcat1/conf/server.xml/ |
tomcat2 | 8081 | /tomcat2/conf/server.xml/ |
在tomcat中添加測試頁面(路徑自行修改)
tomcat1 | /tomcat1/webapps/ROOT/test.jsp |
tomcat2 | tomcat2 |
內容如下(out.println後面為輸出信息,請自行修改)
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false"%>
SessionID:<%=session.getId()%><BR>
SessionIP:<%=request.getServerName()%> <BR>
SessionPort:<%=request.getServerPort()%>
<% out.println("This is Tomcat 1 !"); %>
啟動tomcat訪問測試
IP:PORT/test.jsp
設置nginx負載均衡
這裏以yum安裝的nginx為例
vim /etc/nginx/conf.d/default.conf
#設置upstream upstream tomcat_nginx { server 192.168.233.111:8080; server 192.168.233.111:8081; }
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html;
# Load configuration files for the default server block. include /etc/nginx/default.d/*.conf;
#修改location location / { proxy_pass http://tomcat_nginx; # root html; # index index.html index.htm; }
error_page 404 /404.html; location = /40x.html { }
error_page 500 502 503 504 /50x.html; location = /50x.html { }
} |
啟動nginx訪問測試
修改tomcat的conf/context.xml實現將session存放在redis中
<Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="127.0.0.1" port="6379" password="redhat" 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> |
host是主機,password是密碼,沒有就刪掉這行,post端口,註意Valve必須在Manager之前
啟動redis,重啟tomcat訪問測試
##### 註意:tomcat-redis-session-manager項目不支持tomcat8,作者沒弄,網上的都是在7的基礎上進行的修改,不知道會有什麽問題。
安裝網上的弄tomcat8+redis老是報錯,明天試試其他方法,試試memcache
nginx+tomcat7+redis