Tengine(nginx) 搭建Tomcat集群
好久沒(méi)有更新學(xué)習(xí)的內(nèi)容了,就是得強(qiáng)迫自己寫點(diǎn)東西 記錄自己的學(xué)習(xí),才能更好的進(jìn)步!
? ? ? ? ? ? ?Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項(xiàng)目。它在Nginx的基礎(chǔ)上,針對(duì)大訪問(wèn)量網(wǎng)站的需求,添加了很多高級(jí)功能和特性。Tengine的性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗(yàn)。它的最終目標(biāo)是打造一個(gè)高效、穩(wěn)定、安全、易用的Web平臺(tái)。
首先將Tengin上傳到Linux服務(wù)器上,然后進(jìn)行解壓
??--prefix=/opt/sxt/soft/tengine-2.1.0/ \
??--error-log-path=/var/log/nginx/error.log \
??--http-log-path=/var/log/nginx/access.log \
??--pid-path=/var/run/nginx/nginx.pid ?\
??--lock-path=/var/lock/nginx.lock \
??--with-http_ssl_module \
??--with-http_flv_module \
??--with-http_stub_status_module \
??--with-http_gzip_static_module \
??--http-client-body-temp-path=/var/tmp/nginx/client/ \
??--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
??--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
??--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
??--http-scgi-temp-path=/var/tmp/nginx/scgi \
??--with-pcre
make && make install
? ? 在/etc/init.d下面建立nginx文件,粘貼內(nèi)容,修改路徑
然后使用命令? service? nginx start?
?
出現(xiàn)如下的效果圖就是配置成功
?
?
準(zhǔn)備兩臺(tái)Linux? 每個(gè)Linux都安裝一個(gè)tomcat? ?
在Nginx上配置反向代理
1.反向代理
首先在兩臺(tái)服務(wù)器分別配置并啟動(dòng)tomcat,修改tomcat首頁(yè)為tomcat1和tomcat2
配置反向代理和upstream
upstream backend?{
????server 192.168.2.141:8080 ;
????server 192.168.2.142:8080;
}
?
server {
????location / {
????????proxy_pass http://backend;
}
}
從上面可以看出定義一組服務(wù)器。 這些服務(wù)器可以監(jiān)聽不同的端口。 而且,監(jiān)聽在TCP和UNIX域套接字的服務(wù)器可以混用
訪問(wèn)分別顯示tomcat1和tomcat2
?
?
?
兩個(gè)tomcat出現(xiàn)的問(wèn)題
Session共享
– 首先我們應(yīng)該明白,為什么要實(shí)現(xiàn)共享,如果你的網(wǎng)站是存放在一個(gè)
機(jī)器上,那么是不存在這個(gè)問(wèn)題的,因?yàn)闀?huì)話數(shù)據(jù)就在這臺(tái)機(jī)器,但
是如果你使用了負(fù)載均衡把請(qǐng)求分發(fā)到不同的機(jī)器呢?這個(gè)時(shí)候會(huì)話id
在客戶端是沒(méi)有問(wèn)題的,但是如果用戶的兩次請(qǐng)求到了兩臺(tái)不同的機(jī)
器,而它的session數(shù)據(jù)可能存在其中一臺(tái)機(jī)器,這個(gè)時(shí)候就會(huì)出現(xiàn)取
不到session數(shù)據(jù)的情況,于是session的共享就成了一個(gè)問(wèn)題
?
?解決Session共享的方法
?
?
memcached緩存方案,安裝memcached
1.拋出Session一致性問(wèn)題
2.安裝memcached緩存數(shù)據(jù)庫(kù)
? ? 通過(guò)命令安裝? ? yum?–y install memcached
通過(guò)telnet測(cè)試memcached數(shù)據(jù)庫(kù)
3.tomcat配置名稱和session一致性配置
將jar包拷貝到tomcat的lib下
?
在tomcat的server.xml中配置jvmRoute
Linux1
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
Linux2
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
?
在context.xml的Context配置Manager
Linux1
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.2.141:11211"
????sticky="false"
????lockingMode="auto"
????sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
????sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
?
Linux2 的配置如上
?
4.index.jsp配置
<%@?page?language="java"?contentType="text/html;?charset=UTF-8"??pageEncoding="UTF-8"%>
SessionID:<%=session.getId()%>
<br/>
SessionIP:<%=request.getServerName()%>
<br/>
<h1>tomcat2 page</h1>
?
配置好后? 記得刷新 Nginx和 重啟tomcat
然后在瀏覽器訪問(wèn)? 就能看見訪問(wèn)不同的tomcat但是Session一致。
轉(zhuǎn)載于:https://www.cnblogs.com/kangxinxin/p/9037659.html
總結(jié)
以上是生活随笔為你收集整理的Tengine(nginx) 搭建Tomcat集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。