Tengine(nginx) 搭建Tomcat集群
好久沒有更新學習的內容了,就是得強迫自己寫點東西 記錄自己的學習,才能更好的進步!
? ? ? ? ? ? ?Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。
首先將Tengin上傳到Linux服務器上,然后進行解壓
??--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文件,粘貼內容,修改路徑
然后使用命令? service? nginx start?
?
出現如下的效果圖就是配置成功
?
?
準備兩臺Linux? 每個Linux都安裝一個tomcat? ?
在Nginx上配置反向代理
1.反向代理
首先在兩臺服務器分別配置并啟動tomcat,修改tomcat首頁為tomcat1和tomcat2
配置反向代理和upstream
upstream backend?{
????server 192.168.2.141:8080 ;
????server 192.168.2.142:8080;
}
?
server {
????location / {
????????proxy_pass http://backend;
}
}
從上面可以看出定義一組服務器。 這些服務器可以監聽不同的端口。 而且,監聽在TCP和UNIX域套接字的服務器可以混用
訪問分別顯示tomcat1和tomcat2
?
?
?
兩個tomcat出現的問題
Session共享
– 首先我們應該明白,為什么要實現共享,如果你的網站是存放在一個
機器上,那么是不存在這個問題的,因為會話數據就在這臺機器,但
是如果你使用了負載均衡把請求分發到不同的機器呢?這個時候會話id
在客戶端是沒有問題的,但是如果用戶的兩次請求到了兩臺不同的機
器,而它的session數據可能存在其中一臺機器,這個時候就會出現取
不到session數據的情況,于是session的共享就成了一個問題
?
?解決Session共享的方法
?
?
memcached緩存方案,安裝memcached
1.拋出Session一致性問題
2.安裝memcached緩存數據庫
? ? 通過命令安裝? ? yum?–y install memcached
通過telnet測試memcached數據庫
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
然后在瀏覽器訪問? 就能看見訪問不同的tomcat但是Session一致。
轉載于:https://www.cnblogs.com/kangxinxin/p/9037659.html
總結
以上是生活随笔為你收集整理的Tengine(nginx) 搭建Tomcat集群的全部內容,希望文章能夠幫你解決所遇到的問題。