??
?
? 測(cè)試服務(wù)器上的 bbs 我是用 tomcat 跑的,最近兩天玩了玩 apache +tomcat 集群,于是準(zhǔn)備使用 apache+tomcat 集群重新 部署下我的 bbs 應(yīng)用,就當(dāng)理論聯(lián)系實(shí)際吧,使用這個(gè)架構(gòu)方案的好處我就不說(shuō)了,網(wǎng)上一大堆。
?
?
網(wǎng)絡(luò)拓?fù)鋱D
?
?
?
?
?
?
對(duì)于來(lái)自公網(wǎng)的請(qǐng)求 全部由apache處理,分發(fā)給后面的tomcat 集群,這樣就實(shí)現(xiàn)了負(fù)載均衡
?
?
安裝篇
?
????
1. ?????? 實(shí)驗(yàn)環(huán)境
JRE : 1.5.0
Linux : redhat-release-4AS-5.5
Tomcat : tomcat-6.0.18
Apache : Apache/2.2.4
?
由于實(shí)驗(yàn)條件艱苦 我是在一臺(tái)機(jī)子上安裝 apache+2tomcat+mysql 的
?
2. ?????? 首先安裝 jre 的安裝很簡(jiǎn)單 , 我就不說(shuō)了網(wǎng)上有教程,我的機(jī)子上本來(lái)就有 jre
3
.
?
安裝
apr
包
:
#
在
APACHE
的搭建中
apr
軟件包主要起加載其他模塊的作用
[root@wljs src]# tar xvfz apr-1.2.8.tar.gz
[root@wljs src]# cd apr-1.2.8
[root@wljs apr-1.2.8]# ./configure --prefix=/usr/local/apr-httpd
[root@wljs apr-1.2.8]# make
[root@wljs apr-1.2.8]# make install
4. ? 安裝 apr-util-1.2.8.tar.gz
[root@wljs src]# tar xvfz apr-util-1.2.8.tar.gz
[root@wljs src]# cd apr-util-1.2.8.tar
[root@wljs apr-util-1.2.8.tar]# ./configure --prefix=/usr/local/apr-util-httpd --with-apr=/usr/local/apr-httpd
[root@wljs apr-util-1.2.8.tar]# make
[root@wljs apr-util-1.2.8.tar]# make install
#--prefix= 存放路徑 --with 是用來(lái)加載模塊
5. 安裝 apache
?
root@wljs src]# tar xvfz httpd-2.2.4.tar.gz
[root@wljs src]# cd httpd-2.2.4
[root@wljs httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-mods-shared=all --enable-module=most --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd --enable-so
[root@wljs httpd-2.2.4]# make
[root@wljs httpd-2.2.4]# make install
?
#--enable 是加載動(dòng)態(tài)模塊 (其中 --with-apr=/us ……可寫(xiě)也可以不寫(xiě))
?
? 出現(xiàn)問(wèn)題
checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
?
解決:
安裝 zlib
http://dinghaoliang.blog.163.com/blog/static/12654071420097254115963/
http://hi.baidu.com/alanlong/blog/item/e6ed4bfb57878a9f59ee90a1.html ?
?
使用 ? rpm -aq zlib ? 發(fā)現(xiàn)其實(shí)已經(jīng)有 zlib-1.2.1.2-1.2 網(wǎng)上說(shuō)這種情況需要重新安裝 zlib-1.2.1.2-1.2
重新下載 zlib-1.2.1.2-1.2.src.rpm ? 需要使用 ? rpmbuild ? 命令安裝
?
可是沒(méi)有 rpmbuild 命令 于是 安裝 rpm-build-4.3.3-18_nonptl.i386.rpm ? 于是在 CD3 找到
?
有了 rpmbuild 命令就可以重新安裝 zlib 了
?
6.
安裝
libtool-1.5.6.tar.gz
[root@wljs src]# tar xvfz libtool-1.5.6.tar.gz
[root@wljs src]# cd libtool-1.5.6
[root@wljs libtool-1.5.6]# ./configure
[root@wljs libtool-1.5.6]# make & make install
?
?
7. 安裝 tomcat 和 apache 的鏈接器 ? jakarta-tomcat-connectors-1.2.15-src.tar.tar
? 下載地址:
?
[root@wljs src]# tar xvf jakarta-tomcat-
connectors-1.2.15-src.tar.tar
[root@wljs src]# cd
?
到解壓目錄下面
[root@wljs native2]# ./configure --with-apxs=/usr/local/apache/bin/apxs
[root@wljs native2]# make
[root@wljs native2]# male install
?
將 /root/wang/jakarta-tomcat-connectors-1.2.15-src/jk/native/apache-2.0 目錄下編譯生成的
mod_jk.so 拷貝的 apache 的安裝目錄
/usr/local/apache/modules
?
修改 /usr/local/apache/conf 目錄下的 httpd.conf 文件 最后加上
LoadModule jk_module modules/mod_jk.so
? 出現(xiàn)問(wèn)題
?
? 一開(kāi)始我使用的鏈接器 是 jakarta-tomcat-connectors-jk2-2.0.4-src.tar.tar 導(dǎo)致和 tomcat 集成的時(shí)候 ,apache 啟動(dòng)的時(shí)候總是報(bào)錯(cuò) , 更換了鏈接器 為 1.2.15 就 OK 了
?
?
?
?
?
下載地址:
集成篇
?
1. ?????? apache 和 tomcat 集成主要 體現(xiàn)的幾個(gè)配置文件上
? httpd.conf ? apache 的主要配置文件
新增
?
Listen 9080
LoadModule jk_module modules/mod_jk.so
# 應(yīng)用程序的上級(jí)目錄 這個(gè)寫(xiě)錯(cuò)會(huì)導(dǎo)致 css 和圖片路徑不對(duì)
DocumentRoot "/usr/local/apache/htdocs"
# 首頁(yè)
DirectoryIndex index.html index.jsp
#apache 的安裝路徑
ServerRoot "/usr/local/apache"
# mod_jk
#include "/usr/local/apache/conf/mod_jk.conf"
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkMount /*.jsp controller
JkMount /*.jspx controller
JkMount /servlet/* controller
JkMount /*.do controller
JkMount /dwr/* controller
# JkMount /* ? controller
?
?
? workers.properties ? apache 接受到客戶端請(qǐng)求以后如何轉(zhuǎn)發(fā)請(qǐng)求,請(qǐng)求過(guò)濾的規(guī)則,負(fù)載因子等
?
新增
# The advanced router LB worker
worker.list=controller,tomcat1,tomcat2 #server 列表
?
# Define a worker using ajp13
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=5 #server 的加權(quán)比重,值越高,分得的請(qǐng)求越多
# Define another worker using ajp13
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
?
?
?
# Define the LB worker
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2 ?? # 指定分擔(dān)請(qǐng)求的 tomcat
worker.controller.sticky_session=0
?
?
以上要說(shuō)明的是原文中 worker.controller.sticky_session=1, 等同于 worker.controller.sticky_session=true. 此處指定集群是否需要會(huì)話復(fù)制,如果設(shè)為 true ,則表明為會(huì)話粘性,不進(jìn)行會(huì)話復(fù)制,當(dāng)某用戶的請(qǐng)求第一次分發(fā)到哪臺(tái) Tomcat 后,后繼的請(qǐng)求會(huì)一直分發(fā)到此 Tomcat 服務(wù)器上處理;如果設(shè)為 false ,則表明需求會(huì)話復(fù)制。 這就是說(shuō),如果你要想進(jìn)行均衡負(fù)載,并在 tomcat1 和 tomcat2 實(shí)例上實(shí)現(xiàn)集群全局 session 復(fù)制,此處值要設(shè)置成 false 。
?
?
? tomcat 安裝目錄的 conf 下找到 ? server.xml ? 給 <Host></Host> 加上
<Context path="" docBase="/usr/local/apache/htdocs" debug="0" reloadable="true" crossContext="true"/>
?
?
docBase="/usr/local/apache/htdocs" 的路徑要和 httpd.conf 下的
?
DocumentRoot "/usr/local/apache/htdocs" ? 要一致
?
2. ?????? 將 tomcat 的安裝 目錄 拷貝 1 份 叫 tomcat-6.0.18_01 和 tomcat-6.0.18_02
修改配置文件 模擬 2 個(gè) tomcat , 防止端口沖突
?
Server.xml 需要修改幾個(gè)地方
?
???????????
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

