最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tomcat6_apache2.2_ajp 負載均衡加集群實戰(zhàn)分享

 更新時間:2014年12月25日 21:38:45   投稿:mdxy-dxy  
這篇文章主要介紹了秀脫linux筆記之tomcat6_apache2.2負載均衡加集群實戰(zhàn)篇,需要的朋友可以參考下

環(huán)境:
--------------------------------------------
一臺apache2.2服務器,三臺tomcat服務器:

apache2.2服務器
1.ip:192.168.1.20
2.只裝apache軟件:httpd-2.2.6.tar.bz2
安裝路徑:/usr/local/apache2

tomcat服務器:均配置相同的應用。
1.集群名:balancer://tomcatcluster
2.三臺集群服務器ip:
IP_1:192.168.1.31
IP_2:192.168.1.32
IP_3:192.168.1.33
3.測試應用程序test文件夾放在tomcat6的webapps目錄下

操作系統均為:centos 4.5_x86
jre:1.6:jdk-6u1-linux-i586-rpm.bin
tomcat6.0:編譯好的二進制軟件包apache-tomcat-6.0.13.tar.gz
tomcat6.0 安裝路徑:/usr/local/tomcat6

oralce的jdbc:class12.jar

軟件包存放的路徑:/home/xiutuo/software/
java安裝路徑:/usr/java/jdk1.6.0_01
使用普通用戶:xiutuo來啟動tomcat6
tomcat6開機自動啟動腳本:/etc/init.d/tomcat

下載路徑:
http://java.sun.com/javase/downloads/index.jsp
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

一:前言:

1.apache對tomcat集群支持有倆種方式:

a.通過apache2.1之后版本后內置的proxy_ajp。
b.對于apache2.1之版本則通過tomcat的jk2.0.4的mod_jk2.so:
(該版本已經停止開發(fā))
將解壓縮后的目錄中的modules目錄中的mod_jk2.so
文件復制到apache的安裝目錄下的modules目錄中。
********************
倆種方式比較:
proxy_ajp配置較簡單,主要表現在proxy_ajp目前只支持配置到目錄,
還不支持對文件名稱的pattern模式匹配
(即還不能定義到只對jsp文件起作用)。

而jk2則可配置性強,但已經停止開發(fā)
********************

官方對ajp和jk2說明:
JK2 has been put in maintainer mode and no further development will take place.
The reason for shutting down JK2 development was the lack of developers interest.
Other reason was lack of users interest in adopting JK2,
caused by configuration complexity when compared to JK.

The latest official JK2 release is 2.0.4.

JK2 will have it's successor within core Apache2.1/2.2 distribution.
We have developed new proxy_ajp that is an addition to the mod_proxy
and uses Tomcat's AJP protocol stack. It is developped in httpd-2.1
and integrated in it. We have also developed a new proxy_balancer
module for load balancing http and ajp protocol stacks.

JK will be fully supported for all other web servers.
The next JK release is planned for the end of November.
Lots of code from JK2 has been ported to JK

2.tomcat集群方式:
a.DeltaManager
--現在采用的該方式:內部機器集群少采用
b.BackupManager
********************
兩種集群方式官方說明:
using the DeltaManager to replicate session deltas.
By all-to-all we mean that the session gets replicated to
all the other nodes in the cluster. This works great for smaller cluster
but we don't recommend it for larger clusters(a lot of tomcat nodes).
Also when using the delta manager it will replicate to all nodes,
even nodes that don't have the application deployed.

To get around this problem, you'll want to use the BackupManager.
This manager only replicates the session data to one backup node,
and only to nodes that have the application deployed.Downside of
the BackupManager: not quite as battle tested as the delta manager.
********************

3.負載均衡(load-balance)定義:
在服務器端短時間內獲得大量的請求,單一服務器無法在一個較短的時間內響應這些請求,
此時服務器需要一個機制,請求按照多個服務器不同的負載能力,把這些請求合理的分配。

4.集群(cluster):
在多個服務器之間共享用戶信息,資源等。

tomcat6_apache2.2負載均衡加集群:高可用性至高體現。
現在的帶集群功能相關軟件oracle10g,mysql5,tomcat等。

二:軟件安裝

1.apache服務器安裝:
這里主要介紹apache2的源碼安裝
# cd /home/xiutuo/software/
# tar -zvxf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# mkdir -p /usr/local/apache2
# ./configure \
--prefix=/usr/local/apache2 \
--enable-modules=so \
--enable-mods-shared=all \
--enable-proxy \
--enable-proxy-connect \
--enable-proxy-ftp \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balancer

注釋:這里測試用,編譯了所有可用模塊,并激活了tomcat集群需要的
enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp
和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必須依賴proxy,
如果是自定義的編譯除了以上幾個必須的模塊外,mod_status也要編譯進去,切記。
enable-proxy-ftp可以不編譯。
# make
# make install

2. 三臺tomcat服務器安裝

主要介紹jdk1.6u1和tomcat6的安裝,三臺機器重復此工作就可以了,
當然記得ip一定要設置正確。

jdk1.6安裝
-------------------------------
a.卸載系統自帶jdk
# rpm -e j2sdk-1.4.1-fcs

b.安裝新jdk
# cd /home/xiutuo/software
進入軟件包存放目錄

# chmod a+x jdk-6u1-linux-i586-rpm.bin
使它有執(zhí)行權限

# ./jdk-6u1-linux-i586-rpm.bin
多敲幾個空格,然后看到[yes]的時候輸入yes,回車
然后在當前目錄下就生成了jdk-6u1-linux-i586-rpm

# rpm -ivh jdk-6u1-linux-i586-rpm

c.設置環(huán)境變量    
僅設置某個用戶而不是所有用戶可以修改~/.cshrc,~/.bash_profile文件,
追加下面一段,如果為所有用戶以及以后添加的用戶都加上環(huán)境變量的話,
追加/etc/profie文件.    
***主意不要在profile和~/.cshrc或~/.bash_profile中重復追加**

這里:
# vi /etc/profile    
//java    
//如果你安裝的j2sdk的路徑不一樣,請自行修改
    
JAVA_HOME=/usr/java/jdk1.6.0_01  
export JAVA_HOME   
CLASSPATH=/usr/java/jdk1.6.0_01/lib:/usr/java/jdk1.6.0_01/jre/lib   
export CLASSPATH  
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin   
export PATH   
JRE=/usr/java/jdk1.6.0_01/jre   
export JRE

d:立即生效    
//如果你修改的是/etc/profile    
# source /etc/profile    
//如果你修改的是~/.cshrc    
# source ~/.cshrc    
//如果你修改的是~/.bash_profile    
# source ~/.bash_profile    
   
e:測試成功否    
# java -version
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
看到這個消息,就ok啦
----------------------------------------------

tomcat6安裝
tomcat6更詳細的安裝請看blog上tomcat文章
----------------------------------------------
a.安裝tomcat,
# cd /home/xiutuo/software                     //進入軟件包存放目錄
# tar -zvxf apache-tomcat-6.0.13.tar.gz        //解壓
# mv apache-tomcat-6.0.13 /usr/local/tomcat6 //安裝

# cd /usr/local/tomcat6/bin/                  //進入安裝目錄
# tar -zvxf jsvc.tar.gz                        //解壓
# cd jsvc-src                                 //進入jsvc-src目錄
# autoconf
# ./configure --with-java=/usr/java/jdk1.6.0_01
# configure時切記加java的jdk路徑,否則無法使用普通用戶開機自動啟動tomcat
                                                                                            
# make                                        //編譯生成jsvc文件
# cp jsvc ..                                  //拷貝jsvc到上級目錄
# cd ..                                       //回到上級目錄


# cd /usr/local/tomcat6/

//運行下面的命令可以使tomcat以daemon方式運行
# ./bin/jsvc -cp ./bin/bootstrap.jar \     
     -outfile ./logs/catalina.out \
     -errfile ./logs/catalina.err \
     org.apache.catalina.startup.Bootstrap

b.配置oralce的jdbc
//拷貝oracle的jdbc到/usr/local/tomcat6/lib目錄下
# cp /home/software/class12.jar ./lib/

c.配置tomcat用戶
# cd /usr/local/tomcat6/conf
# vi tomcat-users.xml
內容如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
    <role rolename="tomcat"/>
    <role rolename="role1"/>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="tomcat" password="tomcat" roles="tomcat"/>
    <user username="role1" password="tomcat" roles="role1"/>
    <user username="both" password="tomcat" roles="tomcat,role1"/>
    <user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
請修改tomcat里所有定義用戶的密碼:即修改password為自己想要的值。

d.把應用程序文件夾test放到webapps下

3.tomcat負載均衡和集群配置
參考官方配置文檔:
http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html

a.tomcat6配置文件server.xml和應用程序的web.xml

**開放負載均衡,默認使用ajp協議時使用8009端口(使用http協議時為8080端口)
**修改tomcat 的 conf/server.xml 的<Engine>(使用ajp協議時配置)

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">
改成

<!-- You should set jvmRoute to support load-balancing via AJP ie :
-->
    <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1">
<!--
    <Engine name="Catalina" defaultHost="localhost">
    -->
說明:
第一臺tomcat就把jvmRoute="tomcat1"
第二臺tomcat就把jvmRoute="tomcat2"
第三臺tomcat就把jvmRoute="tomcat3"


**開放集群
**修改tomcat 的 conf/server.xml (使用ajp協議時配置)
在<Engine> 后面或者 <Host>后面簡單的加上  
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
也可以加上更詳細參數的集群配置內容(這是官方默認,請自行修改相關參數):

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
   channelSendOptions="8">

<Manager className="org.apache.catalina.ha.session.DeltaManager"
         expireSessionsOnShutdown="false"
         notifyListenersOnReplication="true"/>

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
    <Membership className="org.apache.catalina.tribes.membership.McastService"
          address="228.0.0.4"
          port="45564"
          frequency="500"
          dropTime="3000"/>
     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
          address="auto"
          port="4000"
          autoBind="100"
          selectorTimeout="5000"
          maxThreads="6"/>

      <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
      <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
      </Sender>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
      </Channel>

      <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
          filter=""/>
       <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

        <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
           tempDir="/tmp/war-temp/"
           deployDir="/tmp/war-deploy/"
           watchDir="/tmp/war-listen/"
           watchEnabled="false"/>

   <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

***配置應用的web.xml
***在每個webapps應用中,修改配置文件web.xml文件 添加元素<distributable/>
在web.xml文件中<web-app>元素下增加以下內容:
<!--此應用將與群集服務器復制Session-->
<distributable/>
具體修改如下:
修改前:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
</web-app>
修改后:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<!--此應用將與群集服務器復制Session-->
<distributable/>
</web-app>

4.配置apache的ajp負載均衡功能,這里請務必啟用反向代理。
******************************
至于其中的原理請參考官方文檔說明。

正向代理的典型用途是為在防火墻內的局域網客戶端提供訪問Internet的途徑。
正向代理還可以使用緩沖特性(由mod_cache提供)減少網絡使用率。

反向代理的典型用途是將防火墻后面的服務器提供給Internet用戶訪問。
反向代理還可以為后端的多臺服務器提供負載平衡,或為后端較慢的服務器提供緩沖服務。
另外,還可以啟用高級URL策略和管理技術,從而使處于不同web服務器系統的web頁面同時
存在于同一個URL空間下。
*****************************

參考文檔:
tomcat6官方文檔
http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html
apache中文版本
http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy.html
http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy_balancer.html
apache官方英文版本
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

***配置apache
***修改/usr/local/apache2/conf/httpd.conf文件

確保將以下Module的注釋去掉
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule status_module modules/mod_status.so

并在最后面,增加
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
</Location>
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
</Location>
ProxyRequests Off
ProxyPass /test balancer://tomcatcluster/ stickysession=jsessionid nofailover=On

<Proxy balancer://tomcatcluster>
BalancerMember ajp://192.168.1.30:8009 loadfactor=1
BalancerMember ajp://192.168.1.31:8009 loadfactor=2
BalancerMember ajp://192.168.1.32:8009 loadfactor=3
</Proxy>
注釋:
ProxyRequests Off 表示啟用反向代理。
ProxyPass為代理轉發(fā)的Url,即將所有訪問/的請求轉發(fā)到
群集balancer://tomcatcluster,這里為/test即將所有訪問/的請求轉發(fā)到群集balancer://tomcatcluster的/test目錄

BalancerMember為群集的成員,
即群集服務器1或2或3,負載均衡服務器會根據均衡規(guī)則來將請求轉發(fā)給BalancerMember。

配置好后,啟動Apahce服務器,訪問localhost就會看到群集服務器中應用返回的結果。

訪問http://192.168.1.20/balancer-manager,顯示負載均衡有關信息


5.調試負載均衡集群系統

調試前務必:
先開啟三臺tomcat6服務器的tomcat服務!
再開啟apache服務器的apache服務,切記!

a.開啟tomcat服務
# cd /usr/local/tomcat6/bin
# ./shutdown.sh //停止tomcat
# ./start.sh      //啟動tomcat

查看tomcat的進程:
# ps -e | grep java
出現了java這個進程的話,說明你的tomcat起來了。

b.開啟apache服務
# cd /usr/local/apache2/bin
# ./apachectl configtest
//命令檢查一下配置是否有誤,顯示Syntax OK,說明配置正確
# ./apachectl stop //停止apache
# ./apachectl start //啟動apache

6.檢驗是否負載均衡集群系統成功

訪問apache服務器的web服務
http://192.168.1.20/balancer-manager
如果顯示負載均衡有關信息則說明成功了。
接著可以訪問http://192.168.1.20/test即訪問到了tomcat的test應用

7.具體的tomcat集群負載均衡優(yōu)化請參考文檔自行設置相關參數
具體的apache優(yōu)化請參考文檔自行設置相關參數

相關文章

  • Tomcat服務器 安全設置

    Tomcat服務器 安全設置

    tomcat是一個開源Web服務器,基于Tomcat的Web運行效率高,可以在一般的硬件平臺上流暢運行,因此,頗受Web站長的青睞。不過,在默認配置下其存在一定的安全隱患,可被惡意攻擊。
    2009-08-08
  • Tomcat首次部署web項目流程圖解

    Tomcat首次部署web項目流程圖解

    這篇文章主要介紹了Tomcat首次部署web項目流程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • tomcat的catalina.out日志按自定義時間格式進行分割的操作方法

    tomcat的catalina.out日志按自定義時間格式進行分割的操作方法

    這篇文章主要介紹了tomcat的catalina.out日志按自定義時間格式進行分割,包括安裝Cronolog,修改Tomcat下bin/catalina.sh文件,shell利用crontab自動清除日志的相關知識,需要的朋友可以參考下
    2022-04-04
  • 解決tomcat的中文問題

    解決tomcat的中文問題

    今天給大家分享的是解決tomcat中由于字符集不直接支持中文問題的方法,非常的簡單實用,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Tomcatc3p0配置jnid數據源2種實現方法解析

    Tomcatc3p0配置jnid數據源2種實現方法解析

    這篇文章主要介紹了Tomcatc3p0配置jnid數據源2種實現方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Tomcat服務器配置https認證(使用keytool生成證書)

    Tomcat服務器配置https認證(使用keytool生成證書)

    本文主要介紹了Tomcat服務器配置https認證,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • 騰訊云Ubuntu14.04安裝Tomcat8教程

    騰訊云Ubuntu14.04安裝Tomcat8教程

    本篇文章主要介紹了騰訊云Ubuntu14.04安裝Tomcat8教程,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Tomcat?與?maven?的安裝與使用教程

    Tomcat?與?maven?的安裝與使用教程

    這篇文章主要介紹了Tomcat?與?maven?的安裝與使用,Tomcat?HTTP?服務器,按照?HTTP?協議的格式來解析請求,調用用戶指定的相關代碼,并且按照?HTTP?響應的格式來構造返回數據,需要的朋友可以參考下
    2022-06-06
  • Tomcat修正JDK原生線程池bug的實現原理

    Tomcat修正JDK原生線程池bug的實現原理

    這篇文章主要介紹了Tomcat是如何修正JDK原生線程池bug的,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 解決tomcat部署時war和war exploded導致的問題

    解決tomcat部署時war和war exploded導致的問題

    war包和warexploded模式的區(qū)別主要在于部署方式,war包是在項目發(fā)布時打包上傳,而warexploded模式則是直接將文件夾結構上傳到服務器,支持熱部署,常用于開發(fā)階段,這種差異可能導致樣式和文件引用問題,如在不同電腦部署時路徑設置的不同
    2024-10-10

最新評論

太原市| 公安县| 湖州市| 邳州市| 天水市| 栖霞市| 常德市| 伊宁县| 抚松县| 随州市| 社旗县| 舟曲县| 中方县| 汉中市| 阳曲县| 霍邱县| 南澳县| 德阳市| 上饶县| 莱阳市| 商洛市| 马公市| 乳山市| 晋城| 景泰县| 浏阳市| 鸡西市| 西畴县| 烟台市| 涿鹿县| 东源县| 句容市| 呈贡县| 正镶白旗| 江油市| 阿瓦提县| 胶南市| 封开县| 万盛区| 安化县| 山西省|