日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

lnmp构架——对tomcat详解

發布時間:2025/3/11 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lnmp构架——对tomcat详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tomcat的安裝部署

安裝jdk和tomcat

tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/ tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/

做好軟連接便于訪問

cd /usr/local ln -s jdk1.7.0_79/ java ln -s apache-tomcat-7.0.37/ tomcat

配置環境變量

vim /etc/profile export JAVA_HOME=/usr/local/java export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/binsource /etc/profile # 使文件生效

編寫測試網頁并測試

vim test.java public class test {public static void main(String[] args){System.out.println("Hello World1");} } javac test.java java test

開啟tommcat

cd /usr/local/tomcat bin/startup.sh

打開瀏覽器測試

打開瀏覽器測試

cd /usr/local/tomcat/webapps/ROOT/ vim test.jsp server1-The time is: <%=new java.util.Date() %>

測試

設置nginx對tomcat的負載均衡

cd /usr/local/lnmp/nginx vim nginx.conf需要注釋掉之前的php設定,并刪除index.phpupstream tomcat {server 172.25.11.4:8080;server 172.25.11.5:8080;}location / {root /usr/local/tomcat/webapps/ROOT;index index.html index.htm;}location ~ \.jsp$ {proxy_pass http://tomcat;}nginx -t nginx -s reload # 重新加載一下nginx

打開瀏覽器刷新測試:

再次刷新會發現時間在變

sticky(粘滯)模塊

重新編寫兩臺tomcat服務器的網頁

vim /usr/local/tomcat/webapps/ROOT/test.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()+"<br>");%> <% out.println("<br> ID " + session.getId()+"<br>"); String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.print("<b>Session list</b>"); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println( name + " = " + value+"<br>"); System.out.println( name + " = " + value); } %> <form action="test.jsp" method="POST"> name:<input type=text size=20 name="dataName"> <br> key:<input type=text size=20 name="dataValue"> <br> <input type=submit> </form> </body> </html>

進行測試


在nginx配置文件中增加tomcat模塊,為了實現session共享,需要支持sticky(粘滯)模塊,nginx-1.14不支持sticky,所以使用nginx-1.10版本,重新編譯nginx

備份之前版本nginx的配置文件到/mnt
并刪除nginx目錄

cd /usr/local/lnmp/nginx/conf cp nginx.conf /mnt/ nginx -s stop cd /usr/local/lnmp/ rm -fr nginx/*


解壓編譯安裝

tar zxf nginx-1.10.1.tar.gz tar zxf nginx-sticky-module-ng.tar.gz cd nginx-1.10.1/ ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --add-module=/lnmp安裝包/nginx-sticky-module-ng make && make install

切換到新編譯安裝好的nginx
從/mnt恢復原nginx.conf

cd /usr/local/lnmp/nginx/ cd conf/ cp /mnt/nginx.conf . vim nginx.conf upstream tomcat {sticky;server 172.25.0.1:8080;server 172.25.0.2:8080;} gzip on; #開啟gzip location / {root /usr/local/tomcat/webapps/ROOT;index index.html index.htm;}location ~ \.jsp$ {proxy_pass http://tomcat;}nginx -t # 檢測文件語法有問題沒 nginx

測試:

再次刷新頁面,訪問的ID號不會變,實現了sticky


session共享(交叉存儲)

在設置之前
關閉一個服務器的tomca查看網頁

cd /usr/localtomcat bin/shutdown.sh

刷新網頁發現立即切換到了另外一臺服務器,并且id發生變化

這樣極為的不安全,且服務器發生故障時,會丟失數據,所以要設置交叉存儲的方式

設置步驟:(兩臺服務器相同設置)
進入/usr/local/tomcat/lib目錄(兩臺服務器都做)
將以下jar包拷貝到該目錄:

asm-3.2.jar kryo-1.04.jar kryo-serializers-0.10.jar memcached-session-manager-1.6.3.jar memcached-session-manager-tc7-1.6.3.jar(最重要) minlog-1.2.jar msm-kryo-serializer-1.6.3.jar reflectasm-1.01.jar spymemcached-2.7.3.jar cd /lnmp安裝包/jar cp * /usr/local/tomcat/lib cd /usr/local/tomcat/lib/ rm -fr memcached-session-manager-tc6-1.6.3.jar

編輯/usr/local/tomcat/conf/context.xml文件,加入session共享配置

vim /usr/local/tomcat/conf/context.xml<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:172.25.11.4:11211,n2:172.25.11.4:11211" failoverNodes="n1" (在172.25.11.5上"n1"改為"n2") requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> </Context>

在兩臺服務器安裝memcached并開啟

yum install memcached -y systemctl start memcached

設置完畢測試:


關閉server4的tomcat

cd /usr/local/tomcat bin/shutdown.sh

刷新頁面:發現ID沒有變

開啟server4的tomcat同時關閉server5的tomcat
再次刷新頁面


關閉server5的memcached

刷新頁面

開啟server5的memcached同時關閉server4的memcached

刷新頁面

發現ID始終沒有改變,即達到了交叉存儲的目的

總結

以上是生活随笔為你收集整理的lnmp构架——对tomcat详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。