Apache安裝及jboss部署說明文件

tonywi888發表於2007-11-07

目 錄

1 .Apache2.0及聯結器jk1.2的編譯部署... 1

1.1下載相關軟體包... 1

1.2 apache2.0的編譯安裝... 2

1.3 jk1.2.14的編譯安裝... 3

1.4 apachejk1.2的引數配置... 3

1.4.1.httpd.conf的修改... 3

1.4.2.mod_jk2.conf的所有內容... 4

1.4.3.workers2.properties的所有內容... 4

1.5 apache服務的啟動和停止... 5

2.JBOSS3.2.3/3.2.6部署及配置修改... 5

2.0 FOR NEW USER. 5

2.0.1 JBOSS 的一點說明... 5

2.0.1 JBOSS常用配置檔案的路徑... 5

2.1 JBOSS 應用程式的下載及安裝... 6

2.2 JBOSS 應用程式的配置調整... 6

2.2.1配置負載均衡,調整引數... 6

2.2.2配置叢集(Clustering),調整引數... 7

2.2.3配置資料來源,調整引數... 7

2.2.4配置jboss Connector引數... 8

2.2.5訪問URL如果是目錄,不想顯示該目錄下檔案... 9

2.2.6設定某個應用APP為預設應用... 9

2.2.7配置資料來源在APP應用載入前有效(各相關服務載入完畢) 10

2.2.8日誌配置,配置log4j.xml 11

2.2.9配置contentTypecharsetTOMCAT5.0JSP統一配置... 12

2.3 JVM最小、最大記憶體的設定... 13

2.4 OS字符集問題... 13

2.5 JBOSS服務的啟動、停止... 13

3.apache https 伺服器的安裝... 14

及聯結器jk1.2的編譯部署

我們需要軟體及其版本說明:

a) apache伺服器:httpd-2.0.54

下載地址:

b)apache/tomcat聯結器:jk1.2.14,這裡選用1.2.*版本,雖然有jk2.0,但據相關文件介紹,jk2.0已不再開發,而jk1.2.*版本使用範圍很廣,久經考驗了,穩定性有保障.兩個版本系列對應的配置也有很大的變化,故而這裡選用jk1.2系列

下載地址:

安裝apache本文件依據的版本是httpd-2.0.54,下載Unix Source,下文介紹主要以linux OS為主,間或會介紹一點windows下安裝的細節。

我們的目標是用apache來做前端的web伺服器,後端用jboss3.2.6,實現負載均衡。

下載完源程式包之後,放到一個臨時目錄中,如 /home/software/:

#cd /home/software/

#tar zxvf httpd-2.0.54.tar.gz

#cd /home/software/httpd-2.0.54

#./configure --enable-MODULE=shared --enable-so --with-mpm=worker

#make

#make install

引數解釋:

--enable-MODULE=shared :該引數是使得相關的模組編譯為可動態載入模組(DSO模式),如果不選用該選項,apache預設的選項是: --enable-MODULE=static,表示將相關的模組靜態編譯。

兩者的區別是:前者使得可以需要更新、重編譯某模組(核心模組不受限於這種模式,如coremod_so)時,只需單獨編譯該模組即可,而不需重新編譯整個apache source code,做到單獨升級。前者弊端是導致apache啟動時慢20%左右,在執行階段慢5%左右,另外DSO模式不是所有OS都支援的,和軟體環境有關係。

--enable-so :該參數列示支援用mod_so模組提供的功能LoadModulehttpd.conf檔案或包含的conf檔案中動態載入某個模組。

--with-mpm=worker :該引數是配置apache將以何種模式編譯的。Apache網站文件指出不同作業系統下的不同的預設模式.

BeOS

Netware

OS/2

Unix

Windows

在安裝完apache後,在類unix OS下,可以在./bin目錄下用./httpd –l 來看到編譯時指定的mpm引數,他們對應著不同的.c模組。

windows環境下,可以用./bin/Apache –l 來檢視相關被編譯的模組。Win環境下預設是 mpm_winnt,則可以看到:

C:Apache GroupApache2bin>apache -l

Compiled in modules:

core.c

mod_win32.c

mpm_winnt.c

http_core.c

mod_so.c

各模式的區別,更具體的描述請參見,下面只簡單說明一下,worker模式是以process/thread混和模式執行的,如果WEB伺服器的期望負載較大的話,則推薦使用worker模式,如果需要一個穩定性考慮為優先的伺服器的話,推薦使用prefork模式,同樣的負載條件下,prefork模式的apache佔用的記憶體會大很多。

預設安裝的路徑為: /usr/local/apache2/,如果要指定安裝路徑,則用引數./configure --prefix=PREFIX來指定安裝路徑,PREFIX為指定的絕對路徑。

可以用PREFIX/bin/apachectl start 來測試是否可以正常啟動服務。

可以用PREFIX/bin/httpd –t來測試http.conf的語法是否合法。

下載完源程式包之後,放到一個臨時目錄中,如 /home/software/:

1、#cd /home/software/

2、#tar zxvf jakarta-tomcat-connectors-1.2.14.1-src.tar.gz

3、#cd /home/software/jakarta-tomcat-connectors-1.2.14.1-src/jk/native

4、# ./configure --with-apxs=/usr/local/apache2/bin/apxs

5、#make

6、# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules

檢視…/native目錄,會看到有apache-1.3以及apache-2.0目錄,在第4步,用--with-apxs引數來指定擴充套件程式apxs的位置,make程式會根據提供的apxs的版本來辨別需要針對apache的哪個版本來生成mod_jk.so,如本文所示例,程式將知道需要為apache2.0生成mod_jk.so,因此編譯工作將會在...jk/native/apache-2.0中進行,瀏覽編譯日誌資訊會看到這些資訊。

6步是將編譯後的so複製至apache的安裝路徑的modules目錄中,應該根據安裝路徑去調整上述指令碼中的路徑。

另外可以將mod_jk.so靜態連線到apache2.0中,然後再一次編譯apache2.0,在上述指令碼中加上引數:

./configure --with-apache=/home/software/httpd-2.0.54

具體請參閱:

以上工作就算結束了編譯、安裝工作,下面將進行引數調整,部署工作。

的修改

該檔案的路徑位於$APACHE-HOME/conf

上述編譯過程中我們選用的worker模式,因此我們將修改worker模組的配置

StartServers 4 #最初建立程式的數量

ServerLimit 24 #程式建立的最大數量,硬限制

ThreadLimit 128 #每一程式能建立執行緒的最大數量,硬限制,該引數建議#ThreadsPerChild一致,如果ThreadLimit > ThreadsPerChild的話,會造成不##必要的記憶體消耗。

MaxClients 3072 #同時可以得到處理的客戶端的最大數量

MinSpareThreads 100 #所有程式中空閒執行緒的總數最小數值

MaxSpareThreads 200 #所有程式中空閒執行緒的總數最大數值

ThreadsPerChild 128 #每個子程式可以建立的固定數量的執行緒

MaxRequestsPerChild 0 #用於控制伺服器建立和結束程式的頻率,0表示沒有#限制,但在solaris OS下該值可能會出錯,可以設定為10002000。根據系統#的併發負載吧。

httpd.conf檔案的最後一行加上:Include conf/mod_jk2.conf

另外還需修改#ServerName ServerName 127.0.0.1:80

的所有內容

新建該檔案,並將該檔案置於$APACHE-HOME/conf

LoadModule jk_module modules/mod_jk.so

JkWorkersFile conf/workers2.properties

JkLogFile logs/mod_jk.log

# Set the jk log level [debug/error/info]

JkLogLevel info

# Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

JkMount /* loadbalancer

#apache will serve the static picture.

#以下命令意味著所有的圖片將由APACHE解析

JkUnMount /*.jpg loadbalancer

JkUnMount /*.gif loadbalancer

JkUnMount /*.swf loadbalancer

JkUnMount /*.bmp loadbalancer

JkUnMount /*.png loadbalancer

在上述配置中,是配置所有圖片由APACHE來解析,因此我們需要將專案中的所有圖片均複製到$APACHE-HOME/htdocs/下,如果你的部署的專案(應用),在訪問時需要輸入字首,,則請注意,在$APACHE-HOME/htdocs/下需要建一個目錄“TestCrm,然後按照你專案中圖片所在的路徑,連同路徑中所有目錄一併考入TestCrm目錄,例如你的圖片位於

…./TestCrm.war/images/1.jpg,那麼為了APACHE能找到圖片,則你在APACHE中的圖片位置應是$APACHE-HOME/htdocs/TestCrm/images/1.jpg

的所有內容

新建該檔案,並將該檔案置於$APACHE-HOME/conf

請注意:下列配置中的server105,server106等紫色的斜體字串都是根據部署的jboss的資訊來部署的,其中server105,server106需要在jboss的相關配置中修改,具體詳見下文介紹。對應的IP地址應改為JBOSS所在的server IP

#以下為workers2.propertie的內容

worker.list=loadbalancer,server105,server106

# Define the first node...

worker.server105.port=8009

worker.server105.host=192.10.12.105

worker.server105.type=ajp13

worker.server105.lbfactor=1

#worker.server105.local_worker=1

worker.server105.cachesize=100

# Define the 2nd node...

worker.server106.port=8009

worker.server106.host=192.10.12.106

worker.server106.type=ajp13

worker.server106.lbfactor=1

#worker.server106.local_worker=1

worker.server106.cachesize=100

# Now we define the load-balancing behaviour

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=server105,server106

worker.loadbalancer.sticky_session=1

說明:worker.loadbalancer.sticky_session=1引數的設定,意味著一旦使用者透過APACHE連線到某臺JBOSS SERVER(建立了session),則只要在該臺JBOSS服務正常的情況下,該使用者所有的請求都將會傳送至該JBOSS SERVER

/usr/local/apache2/bin/apachectl start

/usr/local/apache2/bin/apachectl stop

如果啟動時報錯,提示80埠被繫結,請注意有可能是在裝linux OS時選裝了apache並且啟動了服務,請直接在命令列用apachectl stop ,停止原先的服務,其存在路徑一般為/usr/sbin/apachectl

部署及配置修改

的一點說明

$JBOSS-HOME/server/下有3個目錄,all/default/minimal,它們是表示3種配置,全部的配置、預設配置、最小配置,我們在啟動JBOSS服務時,可以指定

run –c all 表示是啟動all配置(將會載入所有服務)run 表示是以預設配置啟動;

run –c mimimal 表示是啟動mimimal配置。這三者所載入的服務數量不同,具體區別可查閱JBOSS相關文件,你還可以自己定義一個配置,如test,屬於高手去為了效能上的考慮了,那這份文件對你的幫助不會太大了。

如果你確定了JBOSS服務啟動的配置,那麼你的應用及相關配置就需要部署在對應的目錄下的相關的路徑下,如all/default/minimal/下。

常用配置檔案的路徑

為了描述方便,以下描述將以JBOSS3.2.6版本,default配置為例,如果你以別的配置啟動,則在對應的目錄下尋找或配置相關檔案。

1、相關DTD定義檔案位於$JBOSS-HOME/docs/dtd,在其下的檔案中可以查閱某個XML配置檔案中某個元素或屬性的意義。

2、資料來源配置檔案的路徑,$JBOSS-HOME/server/default/deploy,檔案格式必須是*-ds.xml的樣式。不同的資料庫配置引數可參考$JBOSS-HOME/docs/examples/jca/下的示例文件。有關引數的細節在下面會有一定的描述。

3、公共的jar包我們可以放在$JBOSS-HOME/server/default/lib下,如資料庫的JDBC jar,log4j.jar等,如果這些JAR已經在該lib下放置了,那麼我們的應用WEB-INF/lib下不應該再放置,否則JBOSS也會將他們再一次載入,白白佔用記憶體。

4、配置日誌的檔案,log4j.xml位於$JBOSS-HOME/server/default/conf下,具體配置下文還會有一點介紹

5$JBOSS-HOME/server/default/work下存放的是JSP編譯後的.java.class檔案,如果除錯JSP時出錯了,可以到該目錄下(一級級去翻吧)去找對應的檔案,除錯問題。還有個小TIPS,有時我們明明把一個JSP更新到對應的目錄裡了,可是去重新整理頁面時,內容還是舊的,為了解決該問題,我們可以到work目錄下,將對應的.java.class檔案刪了,再重新整理即可,這個原因不好推測,有時可以自動重新整理,有時不行。單個的TOMCAT都能自動重新整理,不知為何整合到JBOSS裡卻有時不行。還需注意的事,你在清除舊的javaclass檔案時,不能為了省事,而直接刪除目錄,否則重新整理時會報錯的,等著你的就是要重啟JBOSS服務了。

6$JBOSS-HOME/server/default/log下存放的是日誌檔案,預設的log4j.xml配置是將日誌輸出到該資料夾下的server.log檔案,可以去檢視資訊進行除錯。

7、我們的應用一般部署在$JBOSS-HOME/server/default/deploy/jbossweb-tomcat50.sar/下,建個TestCrm.war目錄,把我們的整個應用部署在該.war目錄下,這樣JSPServlet將由tomcat引擎來解析處理。

8、配置應用的WEB服務的埠號及引數。

JBOSS3.2.6是在…./ deploy/jbossweb-tomcat50.sar/server.xml中,自己找8080,修改為你想設定的埠即可。

JBOSS3.2.3是在…/default/deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml中配置。

前往去下載相應的版本。直接解壓到相關的目錄即可。

配置負載均衡,調整引數

需要修改配置檔案以適應apache中配置的“session sticky配置”。如下:

Jboss3.2.3修改:

%JBOSS_HOME%/server/default/deploy/jbossweb-tomcat41.sar/META-INF/ jboss-service.xml

修改

jvmRoute=" server106"

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-981052/,如需轉載,請註明出處,否則將追究法律責任。

相關文章