日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载

發布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/

注: 由于長期受轉載毒害,所以本人日志均是原創;其中所記載技術都是在項目中經過驗證,能夠正常運行后才整理出的相關文檔。日志中本人會陳述在項目中所遇到的 所有問題及解決方法。由于軟件和系統版本影響以及其他環境影響,可能大家所遇到的問題不同,希望朋友們可以將遇到的問題貼出來,一起解決。

???????本日志是整理的使用jk搭建apache和tomcat負載均衡集群,其中并沒有涉及到session的復制,請查看日志的朋友留意。

???????我 使用兩臺服務器搭建集群,ip分別為:192.168.40.76 、192.168.40.77 其中76安裝的是apache和tomcat作為集群分發,77只安裝了tomcat,以下的詳細步驟是以76為例編寫,因為77只需要安裝jdk和 tomcat所以各位只需要參考jdk和tomcat安裝方法即可。

1、準備下列程序安裝包:(此安裝包是本人使用的軟件版本,系統版本為centos6.2,此種方法也在centos5.4搭建過沒有問題,其他版本系統尚未測試過)

?

jdk-6u25-linux-i586.bin (注意:如果你的jdk是jdk-6u25-linux-i586-rpm.bin則需要在安裝時作出調整,因為rpm包不能手動指定安裝路徑,jdk的rpm默認是安裝到/usr/local目錄下,且環境變量不用手動設置。如果是菜鳥盡量不要使用rpm包
httpd-2.2.19.tar.gz
apache-tomcat-6.0.20.zip
tomcat-connectors-1.2.32-src.tar.gz (mod_jk 也叫 JK,這是一款 Apache/IIS 用來連接后臺Tomcat的模塊,支持集群和負載均衡。)


2、安裝JDK
# cp jdk-6u25-linux-i586.bin /usr/local/java
# cd /usr/local/java
# chmod +x jdk-6u25-linux-i586.bin? (更改執行文件權限)
# ./jdk-6u25-linux-i586-rpm.bin?? (開始安裝jdk
注:安裝完成后悔在/usr/local/java的目錄下生產一個JDK的文件夾。此目錄就是java的home目錄;但是如果你使用的是rpm包,則此java的home目錄會自動生成在/urs/java下面

?

3、配置jdk環境變量
# vim /etc/profile

打開profile文件后定位到最后一行在unset i 上面加入以下內容:


??export JAVA_HOME=/usr/java/jdk1.6.0_25
??export PATH=$JAVA_HOME/bin:$PATH:.
? export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存退出;


# source /etc/profile?? (重置profle文件

檢查JDK是否安裝成功。


# java -version
java version "1.6.0_25"

Java(TM) SE Runtime Environment (build 1.6.0_25-b06) Java HotSpot(TM) Server VM (build 20.0-b11, mixed mode)

如果看到以上JVM版本及相關信息,即安裝成功!


4、安裝Apache

# tar fvxz httpd-2.2.19.tar.gz
# cd httpd-2.2.19/
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect proxy_balancer headers"??? (注:執行完成后,apache會被安裝到目錄 /usr/local/apache下)
# make
# make install
注: 此處一般不會出問題。但是也不排除apache不能安裝成功的可能性。我在第一次安裝的時候因為系統再帶軟件太多,所以不能正常安裝apache,各位朋 友安裝完成apache以后可以進入apache的安裝目錄的bin目錄,執行 ./apachectl start? 之后查看是否已經啟動成功。


5、安裝Tomcat
# tar zxvf apache-tomcat-6.0.20.tar.gz
# mv apache-tomcat-6.0.20 /usr/local/tomcat


6、安裝tomcat-connectors
# tar zxvf tomcat-connectors-1.2.32-src.tar.gz
# cd tomcat-connectors-1.2.32-src/native/
# ./configure --with-apxs=/usr/local/apache/bin/apxs --with-java-home=/usr/local/java/jdk1.6.0_25/????(注:此處的apache和jdk路徑是你jdk的真正安裝路徑。如果你的jdk不是安裝到此路徑。請安裝實際情況修改)?
# make
# make install

注意:安裝完成tomcat-connectors之后,查看apache目錄下的modules目錄,是否多出一些.so文件。這些文件即jk的配置信息文件

?

7、配置httpd.conf 文件
# vim /usr/local/apache/conf/httpd.conf


在文件最后添加


LoadModule jk_module modules/mod_jk.so

<IfModule jk_module>

JkWorkersFile conf/workers.properties

?JkMountFile conf/uriworkermap.properties

?JkLogFile logs/mod_jk.log

?JkLogLevel warn

?</IfModule>

?

8、創建并配置workers.properties文件

# vim /usr/local/apache/conf/workers.properties
worker.list=wlb , jkstatus worker.worker1.port=8009 worker.worker1.host=192.168.40.76 worker.worker1.type=ajp13 worker.worker1.lbfactor=1 \#Define preferred failover node for worker1 \#worker.worker1.redirect=worker2 worker.worker2.port=8009 worker.worker2.host=192.168.40.77 worker.worker2.type=ajp13 worker.worker2.lbfactor=1 \# Disable worker2 for all requests except failover \#worker.worker2.activation=disabled worker.wlb.type=lb worker.wlb.balance_workers=worker1,worker2 worker.jkstatus.type=status 注意:workers文件是我們自己創建的,其中worker1和worker2分別代表76和77服務器的tomcat

?

9、創建并配置uriworkermap.properties
# vim /usr/local/apache/conf/uriworkermap.properties
?

/admin/*=wlb /manager/*=wlb /jsp-examples/*=wlb /servlets-examples/*=wlb /cngi/*=wlb /examples/*=wlb /*.jsp=wlb !/servlets-examples/*.jpeg=wlb /jkmanager=jkstatus !/*.gif=wlb !/*.jpg=wlb !/*.png=wlb !/*.css=wlb !/*.js=wlb !/*.htm=wlb !/*.html=wlb

注意:其中紅色字體表明的cngi即我們的項目名稱,各位如果配置自己的集群,需要在這里面加入你們的項目根目錄,不然在集群中不能訪問你們的項目。其中紅色字體的含義是cngi目錄下的所有文件均可訪問。

前面有嘆號的是表示在集群中,不能訪問的文件,因為現在網上大多數轉載,所以此處基本都一樣,各位要注意,如果你照樣復制過去,會導致這些css以及圖片等文件,不能正常訪問。所以大家搭建好集群后如果發現樣式消失等問題,可以將里面的那些嘆號全都去掉即可

?

10、編輯76服務器的tomcat server.xml文件


# vim /usr/local/tomcat/conf/server.xml

找到
<Engine name="Catalina" defaultHost="localhost">

修改為:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1">


在Engine標簽下添加下面一段代碼:注意其中的紅色字體,需要修改為你自己的ip
<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="192.168.40.76"
????????????????????????? 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>
到此處,76服務器的所有配置全都已經完成

11、在77服務器按照上面的jdk和tomcat安裝方法,安裝之后,修改tomcat的server.xml

# vim /usr/local/tomcat/conf/server.xml

找到
<Engine name="Catalina" defaultHost="localhost">

修改為:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2">


在Engine標簽下添加下面一段代碼:注意其中的紅色字體,需要修改為你自己的ip
<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="192.168.40.77"
????????????????????????? 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>

所有配置完全完成

啟動 tomcat 和 apache


# /usr/local/tomcat/bin/startup.sh # /usr/local/tomcat/bin/startup.sh # /usr/local/apache/bin/apachectl start

用瀏覽器打開 http://192.168.40.76/examples/servlets/servlet/SessionExample 填寫表單提交,然后關閉一臺tomcat


Sessions Example Session ID: 8114091612E32B0EF1F4FAB5DDF1A417.worker1 Created: Fri Aug 31 02:11:15 CST 2012 Last Accessed: Fri Aug 31 02:11:15 CST 2012 The following data is in your session: laughing = jinxiao

再次刷新表單,看提交的內容是否還在。(注意紅色字體session id 處的變化)


Sessions Example Session ID: 8114091612E32B0EF1F4FAB5DDF1A417.worker2 Created: Fri Aug 31 02:11:15 CST 2012 Last Accessed: Fri Aug 31 02:26:40 CST 2012 The following data is in your session: laughing = jinxiao


Aug 30th, 2012

注意此處的examples項目在worker.properties文件中是有配置的。所以才能正常訪問。

? 如果你的瀏覽器中按照上面的顯示,說明集群配置已經成功。其中需要注意的是worker.properties文件的配置。在向集群中部署項目的時候一定 要將項目的根目錄添加到這個配置文件中。其中部署項目的時候只需要向兩個服務器的tomcat中部署即可,apache中不用部署,而訪問則訪問 apache。

轉載于:https://www.cnblogs.com/davidwang456/p/3343890.html

總結

以上是生活随笔為你收集整理的Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。