Tengine(nginx) 搭建Tomcat集群
好久沒有更新學習的內容了,就是得強迫自己寫點東西 記錄自己的學習,才能更好的進步!
Tengine是由淘寶網發起的Web服務器項目。它在Nginx的基礎上,針對大訪問量網站的需求,添加了很多高級功能和特性。Tengine的性能和穩定性已經在大型的網站如淘寶網,天貓商城等得到了很好的檢驗。它的最終目標是打造一個高效、穩定、安全、易用的Web平臺。
首先將Tengin上傳到Linux服務器上,然後進行解壓
- 安裝依賴 yum -y install gcc openssl-devel pcre-devel zlib-devel
- 編譯三步走 ./configure \
--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
- 註意:一定要從windows復制粘貼過來
在/etc/init.d下面建立
- 修改ngxin文件執行權限
- 配置chkconfig
然後使用命令 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一致。
Tengine(nginx) 搭建Tomcat集群