Nginx和Tomcat的session處理分為兩步 2
第二步,解決Tomcat叢集和Memcached儲存會話
這一步又分為兩步來完成:一是要解決Tomcat叢集,二是要解決Memcached儲存會話。
第一步、解決Tomcat叢集
在這個案例中我們配置了兩臺Tomcat伺服器,在兩臺不同的物理伺服器上,它們的IP分別為192.168.3.139和192.168.3.140。
在IP為 192.168.3.139 的機器上新增如下配置:
將以下內容新增在$CATALINA_HOME/server.xml中。
channelSendOptions="8">
expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
address="224.0.0.4" port="45564" frequency="500" dropTime="3000"/> address="192.168.3.139" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/>
filter=""/>
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
|
注意將以上的配置新增在原配置檔案中:
<!-- --> |
的下面即可。
另外還需要執行以下四條命令:
[root@mail tomcat]#mkdir /tmp/war-temp/ [root@mail tomcat]#mkdir /tmp/war-deploy/ [root@mail tomcat]#mkdir /tmp/war-listen/ |
這三條命令沒什麼可解釋的,這是上面配置中的需要。
[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 |
這條命令的功能在於新增多播路由,對於是不是eth0裝置要根據具體的情況設定。
在IP為 192.168.3.140 的機器上新增如下配置:
將以下內容新增在$CATALINA_HOME/server.xml中。
channelSendOptions="8">
expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
address="224.0.0.4" port="45564" frequency="500" dropTime="3000"/> address="192.168.3.140" port="4000" autoBind="100" selectorTimeout="5000" maxThreads="6"/>
filter=""/>
tempDir="/tmp/war-temp/" deployDir="/tmp/war-deploy/" watchDir="/tmp/war-listen/" watchEnabled="false"/>
|
同樣,注意將以上的配置新增在原配置檔案中:
<!-- --> |
的下面即可。
另外還需要執行以下四條命令:
[root@mail tomcat]#mkdir /tmp/war-temp/ [root@mail tomcat]#mkdir /tmp/war-deploy/ [root@mail tomcat]#mkdir /tmp/war-listen/ |
這三條命令沒什麼可解釋的,這是上面配置中的需要。
[root@mail tomcat]# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 |
這條命令的功能在於新增多播路由,對於是不是eth0裝置要根據具體的情況設定。
第二步、解決Memcached儲存會話
由於我們使用了Memcached,因此需要下載它的客戶端java包,如果你能夠自己寫,那麼也可以自己去寫,不過這種活我們做運維的多數是幹不了,幹不了就使用開源的吧,google的開源替我們做了,需要我們做的就是下載了。
下載下面的jar包,並且將其放置在$CATALINA_HOME/lib目錄下,在兩臺裝有Tomcat的機器上做同樣的操作,就是說在兩個Tomcat伺服器的$CATALINA_HOME/lib目錄下都新增以下jar包。
[root@mail lib]#wget http://memcached-session-manager.googlecode.com/ \ > files/memcached-session-manager-tc7-1.4.1.jar [root@mail lib]wget http://memcached-session-manager.googlecode.com/ \ > files/msm-javolution-serializer-jodatime-1.3.0.jar [root@mail lib] wget http://memcached-session-manager.googlecode.com/ \ > files/msm-javolution-serializer-cglib-1.3.0.jar [root@mail lib]wget http://memcached-session-manager.googlecode.com/ \ > files/minlog-1.2.jar [root@mail lib]wget http://memcached-session-manager.googlecode.com/ \ > files/msm-kryo-serializer-1.4.0.jar [root@mail lib]wget http://memcached-session-manager.googlecode.com/ \ > files/kryo-1.03.jar [root@mail lib]wget http://memcached-session-manager.googlecode.com/ \ > files/reflectasm-0.9.jar [root@mail lib]wget http://cloud.github.com/downloads/magro/ \ > kryo-serializers/kryo-serializers-0.8.jar [root@mail lib]wget http://mirrors.ibiblio.org/pub/mirrors/ \ > maven2/asm/asm/3.2/asm-3.2.jar [root@mail lib]wget http://spymemcached.googlecode.com/ \ > files/memcached-2.5.jar
|
然後再在$CATALINA_HOME/context.xml新增配置內容,兩臺Tomcat的$CATALINA_HOME/context.xml檔案中都新增。
在192.168.3.139的機器上新增:
memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211" failoverNodes="n1" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> |
將以上的內容放置在原檔案
在192.168.3.140的機器上新增:
memcachedNodes="n1:192.168.3.139:11211 n2:192.168.3.140:11211" failoverNodes="n2" requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> |
同樣新增在原檔案
好了,現在所有的配置都完成了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-733714/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx和Tomcat的session處理NginxTomcatSession
- nginx+tomcat+session共享NginxTomcatSession
- php 與 nginx 的兩種處理方式PHPNginx
- Spring Boot 2 + Redis 處理 Session 共享Spring BootRedisSession
- Nginx+Tomcat+Redis實現負載均衡、資源分離、session共享NginxTomcatRedis負載Session
- Tomcat 中的 Session 和 CookieTomcatSessionCookie
- 事件分發和處理事件
- ThinkPHP 3.2 中 session 的處理PHPSession
- 處理Oracle Session中的鎖OracleSession
- nginx + https(tomcat2)NginxHTTPTomcat
- JSP Session處理 (轉)JSSession
- nginx之 nginx + tomcat + redis 負載均衡且session一致性NginxTomcatRedis負載Session
- Java XML和JSON:Java SE的文件處理 第2部分JavaXMLJSON
- Nginx支援.htaccess的分析處理Nginx
- nginx日誌處理Nginx
- CSAPP =2= 資訊的表示和處理APP
- 使用Redis儲存Nginx+Tomcat負載均衡叢集的SessionRedisNginxTomcat負載Session
- Nginx Geoip2 處理不同國家 (或城市) 的訪問Nginx
- 爬蟲 | 處理cookie的基本方法——session爬蟲CookieSession
- SQL處理的主要步驟SQL
- Nginx搭建Tomcat9叢集並實現Session共享NginxTomcatSession
- tomcat結合httpd和nginxTomcathttpdNginx
- Nginx session丟失問題處理解決方法NginxSession
- Nginx+Tomcat實現動靜分離NginxTomcat
- 輕鬆實現session的mysql處理 (轉)SessionMySql
- 使用R和Apache Spark處理大規模資料 [session]ApacheSparkSession
- 配置apache和nginx的tomcat負載均衡ApacheNginxTomcat負載
- tomcat連線處理機制和執行緒模型Tomcat執行緒模型
- Struts2中使用Session的兩種方法Session
- Oracle plsql session間通訊處理OracleSQLSession
- Nginx 超時事件的處理機制Nginx事件
- nginx 是如何處理過期事件的?Nginx事件
- Tomcat 7 中 NIO 處理分析Tomcat
- Tomcat8+Nginx+redis組合解決session同步的相關問題TomcatNginxRedisSession
- kill session V$SESSION標記為KILLED 的2種情況Session
- Nginx—tomcat負載均衡動靜分離群集NginxTomcat負載
- nginx+tomcat動靜態資源分離NginxTomcat
- nginx處理http請求流程NginxHTTP