成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Ubuntu上配置Tomcat集群?

譯文
系統(tǒng) Linux
在本文中將向大家介紹如何配置具有負載均衡和會話復制機制的Tomcat集群。在我們深入探討配置方面的細節(jié)之前,有必要闡明本教程中將出現的幾個術語。

【51CTO精選譯文】Apache Tomcat可以說是當下最受歡迎的開源Java Web服務器。如果貴公司的網站預計會隨著業(yè)務不斷發(fā)展而迎來更大的訪問量,Tomcat的單個實例恐怕無法滿足訪問量日增的需要。這種情況下,你可能會考慮在“集群”環(huán)境下運行Tomcat;在這種環(huán)境下,Web服務器的工作負載分配到多個Tomcat實例。

我在本文中將向大家介紹如何配置具有負載均衡和會話復制機制的Tomcat集群。在我們深入探討配置方面的細節(jié)之前,有必要闡明本教程中將出現的幾個術語。

術語介紹

負載均衡:前端服務器(常常名為“負載均衡器”、“代理均衡器”或“反向代理”)收到HTTP請求后,前端服務器將請求分發(fā)到后端的不止一個“worker”Web服務器,由它們實際處理請求。負載均衡可以消除后端的單一故障點,并且可以為任何Web服務實現高可用性、高擴展性以及更合理的資源優(yōu)化。

會話復制:會話復制是一種機制,將客戶端會話的整個狀態(tài)原原本本復制到集群中的兩個或多個服務器實例,以實現容錯和故障切換功能。通常情況下,分發(fā)的狀態(tài)服務能夠跨集群中的多個不同服務器實例,復制客戶端會話的狀態(tài)。

集群:集群由兩個或多個Web服務器實例組成,這些服務器實例步調一致地工作,透明地處理客戶端請求。客戶端將一組服務器實例認為是單一實體服務。集群的目的是,為客戶端提供高可用性服務,同時盡量高效地利用所有的可用計算資源。

具體要求

下面是搭建Tomcat集群的具體要求。我在本教程中假設有三臺Ubuntu服務器。

  • 服務器#1:帶mod_jk的Apache HTTP Web服務器(充當代理均衡器)
  • 服務器#2和服務器#3:Java運行時6.x或更高版本,以及Apache Tomcat 7.x(充當worker Web服務器)。

Apache Web服務器充當代理均衡器。Apache Web服務器是客戶端唯一看得見的那臺服務器,所有的Tomcat實例都被隱藏起來,客戶端看不見它們。mod_jk插件被激活后,Apache Web服務器將任何入站的HTTP請求轉發(fā)到集群中的Tomcat worker實例。

在本教程的其余部分,我將描述配置Tomcat集群的逐步過程。

第一步:安裝帶mod_jk插件的Apache Web服務器

Tomcat Connectors讓你可以將Tomcat連接到其他開源Web服務器。對Apache Web服務器而言,Tomcat Connectors以一種名為mod_jk的Apache模塊而出現。裝有mod_jk的Apache Web服務器可以將Ubuntu服務器變成代理均衡器。想安裝Apache Web服務器和mod_jk模塊,只要使用下面這個命令。

$ sudo apt-get install apache2 libapache2-mod-jk

第二步:安裝JDK和Apache Tomcat

下一步就是將Apache Tomcat安裝到另外兩臺Ubuntu服務器,這兩臺服務器將作為worker,實際處理HTTP請求。由于Apache Tomcat需要Java開發(fā)工具包(JDK),你同樣需要安裝它。請參閱這篇指南:http://ask.xmodulo.com/install-apache-tomcat-ubuntu-debian.html,即可了解如何將JDK和Apache Tomcat安裝到Ubuntu服務器上。

第三步:在代理均衡器上配置Apache mod_jk

在Ubuntu上,mod_jk配置文件位于/etc/apache2/mods-enabled/jk.conf。用下列內容更新該文件:

  1. <IfModule jk_module>   
  2.    
  3.     # We need a workers file exactly once   
  4.     # and in the global server   
  5.     JkWorkersFile /etc/libapache2-mod-jk/workers.properties   
  6.    
  7.     # JK error log   
  8.     # You can (and should) use rotatelogs here   
  9.     JkLogFile /var/log/apache2/mod_jk.log   
  10.    
  11.     # JK log level (trace,debug,info,warn,error)   
  12.     JkLogLevel info   
  13.    
  14.     JkShmFile /var/log/apache2/jk-runtime-status  
  15.    
  16.     JkWatchdogInterval 60   
  17.    
  18.     JkMount /*  loadbalancer  
  19.     JkMount /jk-status jkstatus  
  20.    
  21.     # Configure access to jk-status and jk-manager   
  22.     # If you want to make this available in a virtual host,   
  23.     # either move this block into the virtual host   
  24.     # or copy it logically there by including "JkMountCopy On"   
  25.     # in the virtual host.   
  26.     # Add an appropriate authentication method here!   
  27.     <Location /jk-status>   
  28.             # Inside Location we can omit the URL in JkMount   
  29.             JkMount jk-status   
  30.             Order deny,allow   
  31.             Deny from all   
  32.             Allow from 127.0.0.1   
  33.     </Location>   
  34.     <Location /jk-manager>   
  35.             # Inside Location we can omit the URL in JkMount   
  36.             JkMount jk-manager   
  37.             Order deny,allow   
  38.             Deny from all   
  39.             Allow from 127.0.0.1   
  40.     </Location>   
  41. </IfModule>  

為了讓上述配置適用于多個Tomcat實例,我們不得不在/etc/libapache2-mod-jk/workers.properties中配置每一個Tomcat worker實例。我們假設,兩個worker Ubuntu機器的IP地址分別是192.168.1.100和192.168.1.200。

使用下列內容,創(chuàng)建或編輯etc/libapache2-mod-jk/workers.properties:

  1. worker.list=loadbalancer,jkstatus # 為192.168.1.100配置Tomcat實例  
  2.     worker.tomcat1.type=ajp13   
  3.     worker.tomcat1.host=192.168.1.100   
  4.     worker.tomcat1.port=8081 
  5.     # worker“tomcat1”使用多達20個套接字,套接字在連接池中駐留的時間只有短短10分鐘。   
  6.     worker.tomcat1.connection_pool_size=200 
  7.     worker.tomcat1.connection_pool_timeout=600   
  8.     # worker“tomcat1”將要求操作系統(tǒng)發(fā)送關于連接的KEEP-ALIVE信號。  
  9.     worker.tomcat1.socket_keepalive=1   
  10.     # 為192.168.1.200配置Tomcat實例  
  11.     worker.tomcat2.type=ajp13   
  12.     worker.tomcat2.host=192.168.1.200   
  13.     worker.tomcat2.port=8082 
  14.     # worker“tomcat2”使用多達20個套接字,套接字在連接池中駐留的時間只有短短10分鐘。   
  15.     worker.tomcat2.connection_pool_size=200 
  16.     worker.tomcat2.connection_pool_timeout=600   
  17.     # worker“tomcat2”將要求操作系統(tǒng)發(fā)送關于連接的KEEP-ALIVE信號。   
  18.     worker.tomcat2.socket_keepalive=1   
  19.     worker.jkstatus.type=status  
  20.     worker.loadbalancer.type=lb   
  21.     worker.loadbalancer.balance_workers=tomcat1,tomcat2 

第四步:配置Tomcat實例

使用下列內容,為地址是192.168.1.100的Tomcat實例編輯/opt/apache-tomcat-7.0.30/conf/server.xml:

 

  1. <Engine name="Catalina" defaultHost="192.168.1.100” jvmRoute="tomcat1"> 
  2.     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> 
  3.     <Manager className="org.apache.catalina.ha.session.DeltaManager" 
  4.         expireSessionsOnShutdown="false" 
  5.         notifyListenersOnReplication="true"/> 
  6.     <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
  7.         <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
  8.             <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
  9.         </Sender> 
  10.         <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto"       port="4000" autoBind="100" selectorTimeout="5000" maxThreads="50"/> 
  11.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
  12.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
  13.     </Channel> 
  14.     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> 
  15.     <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
  16.     <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 
  17.     <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
  18. </Cluster> 
  19. 使用下列內容,為地址是192.168.1.200的Tomcat實例編輯/opt/apache-tomcat-7.0.30/conf/server.xml:  
  20.     <Engine name="Catalina" defaultHost="192.168.1.200” jvmRoute="tomcat2"> 
  21.     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"> 
  22.     <Manager className="org.apache.catalina.ha.session.DeltaManager" 
  23.         expireSessionsOnShutdown="false" 
  24.         notifyListenersOnReplication="true"/> 
  25.     <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
  26.         <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
  27.             <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
  28.         </Sender> 
  29.       
  30.         <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" address="auto"       port="4000" autoBind="100" selectorTimeout="5000" maxThreads="30"/> 
  31.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
  32.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> 
  33.     </Channel> 
  34.     <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> 
  35.     <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 
  36.     <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> 
  37.     <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
  38. </Cluster> 

 

第五步:測試Tomcat集群

Tomcat Connectors有一種特殊類型的worker,那就是所謂的狀態(tài)worker。狀態(tài)worker并不將請求轉發(fā)到Tomcat實例。相反,它允許在運行時獲取狀態(tài)和配置信息,甚至允許動態(tài)更改許多配置選項。你可以通過訪問該狀態(tài)worker來監(jiān)測Tomcat集群:只要使用Web瀏覽器,進入到http://<proxy-balancer-ip-address>/jk-status,就很容易進行監(jiān)測了。

 

 

英文:http://xmodulo.com/2014/06/configure-tomcat-cluster-ubuntu.html

責任編輯:林師授 來源: 51CTO
相關推薦

2009-07-17 16:17:04

在tomcat上配置j

2019-10-21 13:28:38

UbuntuPostgreSQL命令

2016-01-06 14:00:20

Ubuntu 14Ubuntu 15Apache Solr

2020-03-18 14:40:14

Ubuntu 18.0RedisLinux

2019-08-02 15:30:42

UbuntuMongoDB命令

2018-10-15 15:23:50

UbuntupipPython

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2023-08-08 12:38:52

2024-01-04 11:50:00

UbuntuDocker

2015-10-16 10:07:22

Justniffer安裝Ubuntu

2015-08-12 13:44:29

UbuntuChef

2023-05-27 16:27:25

2016-07-26 13:58:52

Ubuntulinux網橋

2015-08-04 14:04:28

UbuntuPDF文件

2021-09-11 15:41:55

UbuntuDropbox云服務

2017-03-29 16:18:11

LinuxUbuntuRedmine

2021-07-12 14:47:16

UbuntuZlib代碼

2019-08-13 16:10:38

UbuntuLinux時間同步

2013-07-25 10:00:30

UbuntuVirtualBox

2019-07-12 16:28:32

MacKubernetes
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲天堂成人在线视频 | 欧美一区二区三区四区视频 | 欧美三级三级三级爽爽爽 | 中文字幕亚洲一区二区三区 | 91在线精品秘密一区二区 | 羞羞视频免费观看入口 | 在线免费看黄 | 日韩欧美一区在线 | 欧美激情第一区 | 最新国产精品精品视频 | 欧美久久大片 | 一区二区精品 | 久草视频观看 | 曰韩三级 | 99欧美精品| 欧美日一区二区 | h视频在线免费看 | 91精品国产综合久久久久 | 国产精品久久久 | 色视频网站 | 一区二区三区四区五区在线视频 | 中文字幕av一区二区三区 | 国产精品国产成人国产三级 | 性欧美xxxx | 涩爱av一区二区三区 | 国产a区| 九九久久在线看 | 国产一区亚洲 | www.色综合| 欧美日韩淫片 | 日韩精品免费视频 | 午夜欧美a级理论片915影院 | 欧美久久久久 | 91在线电影 | 亚洲第一在线 | 欧美日韩国产中文 | 欧美激情一区二区 | 亚洲国产精品一区二区三区 | 一级aaaa毛片 | 国产一区不卡在线观看 | 日韩在线观看网站 |