tom貓—–(Tomcat詳解)

目錄
安裝tomcat
tomcat目錄結構及配置文件構成以及主配置文件server.xml ,tomcat中的組件
實現反代tomcat的方法
   nginx+tomcat cluster
   http(mod_porxy_http)+tomcat cluster
   http(mod_porxy_ajp)+tomcat cluster
   http(mod_jk)+tomcat cluster
實現tomcat會話保持
   session sticky
   session cluster
   session server
  
相遇tomcat (?? . ??)

tomcat的核心組件

頂級類組件:Server

服務類組件:Service

連接器組件:Connector

容器類組件,即可部署webapp的程序:Engine, Host, Context

被嵌套類組件:valve, logger, realm,

安裝tomcat

# rpm -ivh jdk-7u79-linux-x64.rpm

# vim /etc/profile.d/java.sh

      export JAVA_HOME=/usr/java/latest

      export PASH=$JAVA_HOME/bin:$PASH

# . /etc/profile.d/java.sh????????????????????????????????????? 重讀

# java –version???????????????????????????????????? 顯示版本

     java version "1.7.0_79"

     Java(TM) SE Runtime Environment (build 1.7.0_79-b15)

     Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

# tar xf apache-tomcat-8.5.23.tar.gz -C /usr/local

# cd /usr/local

# ls

     apache-tomcat-8.5.23? etc??? include? lib64??? sbin?? src

     bin?????????????????? games? lib????? libexec? share

# ln -sv apache-tomcat-8.5.23 tomcat

     `tomcat' -> `apache-tomcat-8.5.23'

# ll

     total 44

     drwxr-xr-x. 9 root root 4096 Nov 13 09:38 apache-tomcat-8.5.23

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 bin

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 etc

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 games

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 include

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 lib

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 lib64

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 libexec

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 sbin

     drwxr-xr-x. 5 root root 4096 Nov 10 11:45 share

     drwxr-xr-x. 2 root root 4096 Sep 23? 2011 src

     lrwxrwxrwx. 1 root root?? 20 Nov 13 09:39 tomcat -> apache-tomcat-8.5.23

# cd tomcat/

# vim /etc/profile.d/tomcat.sh

     export CATALINA_HOME=/usr/local/tomcat

     export PATH=$CATALINA_HOME/bin:$PATH

# . /etc/profile.d/tomcat.sh

# version.sh

     Using CATALINA_BASE:?? /usr/local/tomcat

     Using CATALINA_HOME:?? /usr/local/tomcat

     Using CATALINA_TMPDIR: /usr/local/tomcat/temp

     Using JRE_HOME:????? ??/usr/java/latest

     Using CLASSPATH:?????? /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

     Server version: Apache Tomcat/8.5.23

     Server built:?? Sep 28 2017 10:30:11 UTC

     Server number:? 8.5.23.0

     OS Name:??????? Linux

     OS Version:??? ?2.6.32-642.el6.x86_64

     Architecture:?? amd64

     JVM Version:??? 1.7.0_79-b15

     JVM Vendor:???? Oracle Corporation

# catalina.sh version

     Using CATALINA_BASE:?? /usr/local/tomcat

     Using CATALINA_HOME:?? /usr/local/tomcat

     Using CATALINA_TMPDIR: /usr/local/tomcat/temp

     Using JRE_HOME:??????? /usr/java/latest

     Using CLASSPATH:?????? /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

     Server version: Apache Tomcat/8.5.23

     Server built:?? Sep 28 2017 10:30:11 UTC

     Server number:? 8.5.23.0

     OS Name:??????? Linux

     OS Version:???? 2.6.32-642.el6.x86_64

     Architecture:?? amd64

     JVM Version:??? 1.7.0_79-b15

     JVM Vendor:???? Oracle Corporation

# ss –tnl????????????????????? 查看8080端口是否被監聽

# catalina.sh start

# ss –tnlp

:::8080?
??:::*????? users:(("java",3225,45))
手動添加一個測試應用程序

# cd /usr/local/tomcat/webapps

# mkdir myapp/{lib,classes,WEB-INF,META-INF} –pv

# vim myapp/index.jsp

<%@ page language="java" %>

<%@ page import="java.util.*" %>

<html>

???????? <head>
?????????????????? <title>JSP Test Page</title>

???????? </head>

???????? <body>

?????????????????? <% out.println("Hello,world"); %>

???????? </body>

</html>
tom貓-----(Tomcat詳解)

tomcat自帶的應用程序訪問

當遇到如下問題時,可采用以下方法嘗試解決

新安裝的tomcat,用其他機器訪問tomcat的Server Status、Manager App、Host Manager三個頁面均顯示403(本機訪問沒有問題),conf/tomcat-users.xml里已添加配置:

<role rolename=”manager-gui”/>

<role rolename=”admin-gui”/>

<user username=”tomcat” password=”qazwsx” roles=”manager-gui,admin-gui”/>

 

重啟之后,還是403

查找網上解決辦法無果,大部分網上的文章都只提到了在tomcat-users.xml里添加上面的語句,無法解決,通過查閱官方文檔,終于找到問題所在,打開webapps下的host-manager和manager,都有一個共同的文件夾META-INF,里面都有context.xml,這個文件的內容是:

<Context antiResourceLocking=”false” privileged=”true” >

<Valve className=”org.apache.catalina.valves.RemoteAddrValve”

allow=”127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1″ />

<Manager sessionAttributeValueClassNameFilter=”java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap”/>

</Context>

這段代碼的作用是限制來訪IP的,127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1,是正則表達式,表示IPv4和IPv6的本機環回地址,所以這也解釋了,為什么我們本機可以訪問管理界面,但是其他機器確是403。

 

找到原因了,那么修改一下這里的正則表達式即可,比如我們只允許內網網段192.168.訪問管理頁面,那么改成這樣就可以:

<Context antiResourceLocking=”false” privileged=”true” >

<Valve className=”org.apache.catalina.valves.RemoteAddrValve”

allow=”192.168.*.*” />

</Context>

修改完畢,重新打開tomcat,問題解決

tom貓-----(Tomcat詳解)tom貓-----(Tomcat詳解)

相識tomcat?(>^ω^<)喵

tomcat的目錄結構

bin:腳本,及啟動時用到的類;

conf:配置文件目錄;主配置文件server.xml

lib:Java類庫;

logs:日志文件目錄;

temp:臨時文件目錄;

webapps:webapp的默認目錄;

work:工作目錄;存放編譯后的字節碼文件;

?tomcat的配置文件構成:

server.xml:主配置文件;

web.xml:每個webapp只有“部署”后才能被訪問,它的部署方式通常由web.xml進行定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認部署相關的配置;

context.xml:每個webapp都可以使用的配置文件,它通常由專用的配置文件context.xml來定義,其存放位置為WEB-INF/目錄中;此文件為所有的webapps提供默認 配置;

tomcat-users.xml:用戶認證的賬號和密碼文件;

catalina.policy:當使用-security選項啟動tomcat時,用于為tomcat設置安全策略;

catalina.properties:Java屬性的定義文件,用于設定類加載器路徑,以及一些與JVM調優相關參數;

logging.properties:日志系統相關的配置

JAVA WebAPP的組織結構:

有特定的組織形式,層次型的目錄結構:主要包含了servlet代碼文件,JSP頁面文件、類文件、部署描述符文件等。 ??? ? ? ? ? ? ? ? ? /: webapps的根目錄

index.jsp:webappde主頁;

WEB-INF/:當前webapp的私有資源路徑;通常用于存儲當前webapp自用的web.xml;

META-INF/:當前webapp的私有資源路徑;通常用于存儲當前webapp自用的context.xml配置文件;

classes/:類文件,webapp的私有類;

lib/:類文件,當前webapp的私有類,被打包為jar格式;

webapp歸檔格式:

.war:webapp 歸檔文件

.jar:EJB的類打包文件(類庫);

.rar:資源適配器類打包文件;

.ear:企業級應用程序;

部署webapp相關的操作

deploy:部署,將webapp的源文件放置于目標目錄(網頁程序文件存放目錄),配置tomcat服務器能夠基于web.xml和context.xml文件中定義的路徑來訪問此webapp;將其特有的類和依賴的類通過 class loader裝載至tomcat;

部署有兩種方式:

自動部署:auto deploy

手動部署:

冷部署:把webapp復制到指定的位置,而后才啟動tomcat;

熱部署:在不停止tomcat的前提下進行部署;部署工具:manager、ant腳本、tcd(tomcat client deployer)等;

undeploy:反部署,停止webapp,并從tomcat實例上拆除其部分文件和部署名;

start:啟動處于停止狀態的webapp;

stop:停止webapp,不再向用戶提供服務;其類依然在jvm上;

redeploy:重新部署;

Tomcat主配置文件結構:server.xml

? ? ? ? ? ? ? ? ? ? ? ? ? ? <Server>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<Service>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <connector/>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <connector/>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?…

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<Engine>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <Host>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <Context/>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<Context/>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? …

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </Host>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<Host>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? …

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </Host>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? …

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </Engine>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?</Service>

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? </Server>

主配置文件server.xml ,tomcat中的組件:

? ?【 Server 】:即一個tomcat實例;

? ?【 Service組件?】:用于實現將一個或多個connector組件關聯至一個engine組件;

? ?【 Context組件?】

負責接收請求,常見的有三類http/https/ajp;

進入tomcat的請求可分為兩類:

(1) standalone : 請求來自于客戶端瀏覽器;

(2) 由其它的web server反代:來自前端的反代服務器;

nginx –> http connector –> tomcat

httpd(proxy_http_module) –> http connector –> tomcat

httpd(proxy_ajp_module) –> ajp connector –> tomcat

屬性:

port=”8080″

protocol=”HTTP/1.1″

connectionTimeout=”20000″

address:監聽的IP地址;默認為本機所有可用地址;

maxThreads:最大并發連接數,默認為200;

enableLookups:是否啟用DNS查詢功能;

acceptCount:等待隊列的最大長度;

? ?【 Engine組件?】:Servlet實例,即servlet引擎,其內部可以一個或多個host組件來定義站點; 通常需要通過defaultHost來定義默認的虛擬主機;

常用屬性:

name:engine組件的名稱,用于日志和錯誤信息記錄時區別不同的引擎

defaultHost=”localhost”

jvmRoute=

? ?【Host組件?】:位于engine內部用于接收請求并進行相應處理的主機或虛擬主機。

示例:

<Host name=”localhost” appBase=”webapps”

unpackWARs=”true” autoDeploy=”true”>

</Host>

常用屬性說明:

(1) appBase:此Host的webapps的默認存放目錄,指存放非歸檔的web應用程序的目錄或歸檔的WAR文件目錄路徑;

(2) autoDeploy:在Tomcat處于運行狀態時,將某webapp放置于appBase所定義的目錄中時,是否自動將其部署至tomcat;

示例:

<Host name=”tc1.magedu.com” appBase=”/appdata/webapps” unpackWARs=”true” autoDeploy=”true”>

</Host>

? ?【 Context組件?】

示例:

<Context path=”/PATH” docBase=”/PATH/TO/SOMEDIR” reloadable=””/>

? ?【Valve組件?】

<Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs”

prefix=”localhost_access_log” suffix=”.txt”

pattern=”%h %l %u %t &quot;%r&quot; %s %b” />

Valve存在多種類型:

定義訪問日志:org.apache.catalina.valves.AccessLogValve

定義訪問控制:org.apache.catalina.valves.RemoteAddrValve

<Valve className=”org.apache.catalina.valves.RemoteAddrValve” deny=”172\.16\.100\.67″/>

tomcat (? ??_??)?

1、nginx實現tomcat反代(LNMT)

反代服務器:nginx ? ? ? ? ? ? ? ? ? (node1)

tomcat1主機:192.168.1.26 ? ?(nod2)

tomcat2主機:192.168.1.31 ? ? (node3)

注意:三臺服務器的時間要同步

配置tomcat主機

【node2】

# yum install jdk-8u25-linux-x86.rpm

# ls /usr/java

# vim /etc/profile.d/java.sh

     export JAVA_HOME=/USR/JAVA/LATEST
     export PATH=$JAVA_HOME/bin:$PATH
# . /etc/profile.d/java.sh
# tar xf apach-tomcat-8.5.23.tar.gz
# cd /usr/local
# ln -sv apach-tomcat-8.5.23 tomcat
# cd tomcat/
# vim /etc/profile.d/tomcat.sh
      export CATALINA_HOME=/usr/local/tomcat
      export PATH=$CATALINA_HOMR/bin:$PATH
# . /etc/profile.d/tomcat.sh                              重讀
# mkdir -pv /data/webapps/ROOT
# cd /usr/local/tomcat/conf
# vim server.xml
     default Host="node3.nene.com   jvmRoute="TomcatA"
     <Host name="node2.nene.com"     appBase="/data/webapps/"   unpackWAPs="true"   autoDeploy="true">
           <Context path=""     docBase="ROOT"     reloadable="true">
                <Valve   className="org.apaen.catalina.valve.RemoteADDrValve">
           </Context>
     </Host>
# mkdir /data/logs
# catalina.sh configtest      檢查語法錯誤
# mkdir -pv /data/webapps/ROOT{lib,classes,META-INF,WEB-INF}
# vim /data/webapps/ROOT/index.jsp
<%@ page language=”java” %>

<html>

<head><title>TomcatA</title></head>

<body>

<h1><font color=”blue”>TomcatA.nene.com</font></h1>

<table align=”centre” border=”1″>

<tr>

<td>Session ID</td>

<% session.setAttribute(“nene.com”,”nene.com”); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>
# catalina.sh start

測試:http://192.168.1.26:8080/ROOT

# scp -rp /data node3:/data
# scp server.xml node3:/usr/local/tomcat/conf

【node3】
# vim server.xml
      default Host="node3.nene.com jvmRoute="TomcatB"
      <Host name = node3.nene.com 
# vim /data/webapps/ROOT/index.jsp
<%@ page language=”java” %>

<html>

<head><title>TomcatB</title></head>

<body>

<h1><font color=”blue”>TomcatB.nene.com</font></h1>

<table align=”centre” border=”1″>

<tr>

<td>Session ID</td>

<% session.setAttribute(“nene.com”,”nene.com”); %>

<td><%= session.getId() %></td>

</tr>

<tr>

<td>Created on</td>

<td><%= session.getCreationTime() %></td>

</tr>

</table>

</body>

</html>
# canalina.sh start

測試:http://192.168.1.26:8080/ROOT

【node1】

# yum install nginx -y

# cd /etc/nginx

# vim nginx.conf       先備份再編輯

       upstream tcsrvs {
            server node2:8080;
            server node3:8080;
       }
       
       server {
            location ~*\.(jsp|do)$ {
                  proxy_pass http://tcsrvs;
            }
       }
# nginx -t
# systemctl start nginx.service

http://192.168.1.35/index.jsp      測試看是否負載均衡至后端主機

會話綁定
【node1】
# vim nginx.conf
   upstream tcsrvs {
       ip_hash
   }
# systemctl reload nginx.service

http://192.168.1.35/index.jsp 測試看是否會話綁定至后端主機

2、實現httpd(proxy_http_module)+tomcat cluster架構
httpd服務器利用proxy_http_module模塊實現反代服務

利用上面的tomcat1和tomcat2服務器,里面的配置不用變

主要需要改反代服務器,停止nginx服務器,然后利用httpd實現反代服務

注意:要利用這種架構實現反代tomcat服務,要確保httpd服務器內已經加載了proxy_http_module模塊:使用命令:httpd -M查看


【node1】
# yum -y install httpd
# cd /etc/httpd
# vim conf/http.conf
# DocumentRoot “/var/www/html”
# vim conf.d/vhost.conf

<VirtualHost *:80>

ServerName www.nene.com

ProxyRequests Off ? ? ? ? ? ? ? ? ? ?關閉正向代理

ProxyVia On

ProxyPreserveHost On ? ? ? ? ? ? ? ? ? ?是否把用戶請求使用的主機名發到后端

<Proxy *> ? ? ? ? ? ? ? ? ? ?proxy功能允許那些訪問

Require all granted

</Proxy>
<proxy balancer://lbcluster1>

BalancerMember http://192.168.1.26:8080 loadfactor=10 route=TomcatA

BalancerMember http://192.168.1.31:8080 loadfactor=10 route=TomcatA

ProxySet lbmethod=byrequests

</Proxy>
ProxyPass / balancer://lbcluster1/

ProxyPassReverse / balancer://lbcluster1/

<Location />

Require all granted

</Location>

</VirtualHost>
# httpd -t
# systemctl start httpd.service
# ss -tnlp
      httpd                :::80

http://192.168.1.35/index.jsp      查看是否負載均衡

實現會話綁定:
# vim conf.d/vhost.conf
   <proxy
       ProxySet   stickysession=ROUTEID
# httpd -t
# systemctl restart httpd.service

http://192.168.1.35/index.jsp        查看是否會話綁定

如果上述方法無法實現,可以采取下面的方法
# vim conf.d/vhost.conf     在頂頭添加以下一行

Header add Set-Cookie “ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/” env=BALANCER_ROUTE_CHANGED

# httpd -t
# systemctl restart httpd.service

3、實現httpd(proxy_ajp_module)+tomcat cluster架構

httpd服務器利用proxy_ajp_module模塊實現反代服務

利用上面的tomcat1和tomcat2服務器,里面的配置不用變

注意:要利用這種架構實現反代tomcat服務,要確保httpd服務器內已經加載了proxy_ajp_module模塊:可以使用命令:httpd -M查看

上一例中的所有配置不變,只需修改下面一項即可
# vim conf.d/vhosta.conf
<proxy balancer://lbcluster1>

BalancerMember http://192.168.1.26:8080 loadfactor=10 route=TomcatA

BalancerMember http://192.168.1.31:8080 loadfactor=10 route=TomcatA

ProxySet lbmethod=byrequests

</Proxy>

4、實現mod_jk+tomcat cluster架構

 

 

tomcat?(>^ω^<)喵

session sticky
session cluster
session server

除了上面實現的會話保持以外,還有兩種可以實現會話保持的方法

1、會話管理:deltaManager(session cluster)

前端node1用的mod_proxy_http

【node2】
# vim server.xml

<host

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
???????????????? channelSendOptions="8">????? 信道

????????? <Manager className="org.apache.catalina.ha.session.DeltaManager"?? 指明會話管理器

?????????????????? expireSessionsOnShutdown="false"

?????????????????? notifyListenersOnReplication="true"/>

????????? <Channel className="org.apache.catalina.tribes.group.GroupChannel">? 組信道

??????????? <Membership className="org.apache.catalina.tribes.membership.McastService"定義集群成員關系

??????? ????????????????address="228.0.1.4"?? 多播地址

??????????????????????? port="45564"

??????????????????????? frequency="500"??????? 沒多久發一次心跳(毫秒)

??????????????????????? dropTime="3000"/>????? 多久沒收到心跳將其踢出集群
??????????? <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"?? 如何接收心跳

?? ???????????????????address="192.168.1.47(192.168.1.31)"

????????????????????? port="4000"

????????????????????? autoBind="100"??????? 是否自動綁定,綁定的時間

????????????????????? selectorTimeout="5000"???? 挑選的超時時間

????????????????????? maxThreads="6"/>????? 最大線程

??????????? <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">??? 如何傳遞心跳

????????????? <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>? 如何進行傳輸

??????????? </Sender>

??????????? <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

??????????? <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
????????? </Channel>

????????? <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"

???????????????? filter=""/>

????????? <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

????????? <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"自動部署

??????????????????? tempDir="/tmp/war-temp/"

??????????????????? deployDir="/tmp/war-deploy/"

??????????????????? watchDir="/tmp/war-listen/"

??????????????????? watchEnabled="false"/>
????????? <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

??????? </Cluster>

# Catalina.sh configtest

# cp web.xml /data/webapps/ROOT/WEB-INF/

# vim /data/webapps/ROOT/WEB-INF/web.xml

???????? <distributable>

# scp /data/webapps/ROOT/WEB-INF/web.xml node3: /data/webapps/ROOT/WEB-INF/

【node2&3】
# catalina.sh start

# ss –tnl

# tail /usr/local/tomcat/logs/catalina.out???????? 看有沒有對方的節點

訪問192.168.1.35看會話是否保持


2、memcache會話保持:memcache-session-manager (session server)

在Tomcat主機下載好MSM;

memcache-session-manager-1.8.3.jar
memcache-session-manager-tc8-1.8.3.jar
msm-javolution-serializer-1.8.3.jar
javolution-5.4.3.1
spymemcache-2.11.1.jar

下載地址:https://github.com/magro/memcached-session-manager/wiki/SetAndConfiguration
在Tomcat主機的server.xml中的context中添加以下代碼;

<Context path="" docBase="ROOT" reloadable=”true”>

<Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”

memcachedNodes=”n2:192.168.1.26:11211,n3:192.168.1.31:11211″

failoverNodes=”n2″   備用節點

requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”      轉碼器

transcoderFactoryClass=”de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory”    序列化工具

/>   

</Context>

在memcache主機上yum安裝memcache;

yum -y install memcache

 

 


原創文章,作者:nene,如若轉載,請注明出處:http://www.www58058.com/88456

(1)
nenenene
上一篇 2017-11-16
下一篇 2017-11-16

相關推薦

  • nginx相關配置及解釋

    全局配置: user  nginx nginx; #運行程序的用戶和用戶組pid      /var/run/nginx.pid; #主控進程load_module /usr/lib64/nginx/modules/ngx_http_geoip_module.so;#加載模塊 work進程的數量:通常為當前主…

    Linux干貨 2017-05-07
  • linux中的幾種壓縮工具

    文件壓縮 compress 不能自動補齊 .Z -d 解壓縮 uncompress zcat X.Z > X -c 將結果打印到屏幕上,配合重定向,不會覆蓋原文件,但權限會變。 -f 默認不對硬鏈接數為2及以上的文件壓縮,加上f,強制壓縮指定文件,而其他同inode的文件硬鏈接數減1. -v 顯示詳細過程。 ———&…

    2017-08-11
  • Leetcode 編程訓練

    Leetcode這個網站上的題都是一些經典的公司用來面試應聘者的面試題,很多人通過刷這些題來應聘一些喜歡面試算法的公司,比如:Google、微軟、Facebook、Amazon之類的這些公司,基本上是應試教育的功利主義。 我做這些題目的不是為了要去應聘這些公司,而是為了鍛煉一下自己的算法和編程能力。因為我開始工作的時候基本沒有這樣的訓練算法和編程的網站,除了…

    Linux干貨 2016-08-15
  • 馬哥教育網絡班N22期+第8周課程練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 網橋:是連接兩個局域網的基于MAC地址數據存儲轉發設備,工作于數據鏈路層集線器:所有端口處于同一個廣播域和沖突域中,帶寬共享,工作于物理層二層交換機:多端口網橋,一個端口一個沖突域,默認所有端口位于同一個廣播域中,可以劃分vlan,隔離廣播域,帶寬獨享三層交換機:具有路由功能的二…

    Linux干貨 2016-10-19
  • 第四周練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限 # cp -a /etc/skel /home/tuser1 # chmod -R go= /home/tuser1 2、編輯/etc/group文件,添加組hadoop #vim /etc/group #hadoop:x:5…

    Linux干貨 2017-10-21
  • N25-第二周博客作業

    1. Linux上的文件管理類命令都有那些,其常用的使用方法及其相關示例演示. 文件管理工具有cp, mv, rm cp命令: 復制文件或文件夾 語法: cp [OPTION]… [-T] SOURCE DEST 單源復制cp [OPTION]… SOURCE… DIRECTORY 多源復制 常用選項:  &nb…

    Linux干貨 2016-12-10
欧美性久久久久