[轉貼]最新版Apache2.2與Tomcat的整合指南

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

[轉貼]最新版Apache2.2與Tomcat的整合指南

偶看到這貼感覺不錯,說的比較細。老少皆宜:


最新版Apache2.2與Tomcat的整合指南             

    因為複雜度太高而備受職責的JK2因為開發人員太少而停止了,JK也一年多沒更新了。但不要緊,最新版的Apache2.2中,集成了對tomcat支持的ajp——proxy_ajp模塊。

    本文雖然專門介紹Linux下apache2.2的安裝與配置,但配置部分和說明部分,對windows等平台也是適用的。

    安裝Tomcat
    Tomcat的安裝,請參考網上其他文章。
    安裝后,
    確認tomcat的配置文件server.xml中,把ajp1.3鏈接配置打開。即Define a Coyote/JK2 AJP 1.3 Connector on port 8009部分。
    運行tomcat

    安裝Apache

    登錄linux,選擇一個目錄,下載apache源代碼:
    wget http://archive.apache.org/dist/httpd/httpd-2.2.2.tar.gz

    解壓縮
    tar fvxz httpd-2.2.2.tar.gz


    進入解壓后的目錄。進行配置:
    ./configure --prefix=/usr/apache --enable-module=most --enable-proxy --enable-proxy-ajp --enable-forward --enable-proxy-connect --enable-proxy-http --enable-so --enable-deflate --enable-headers --enable-include

    上面的配置,用到了其他一些模塊,說不定以後會用到,如支持ssi的include模塊,但這些不是本文的重點。

    編譯(編譯如果不成功,確認一下你的linux是否安裝有編譯所需要的c環境和其他需要的類庫)
    make

    安裝
    make install


    編輯/usr/apache/conf/httpd.conf文件,把埠改一改,一般的,改為80(別跟tomcat的埠衝突)

    進入/usr/apache目錄,運行apache
    ./apachectl -k start

    運行apache后,瀏覽一下是否運行正常。

    關閉apache
    ./apachectl -k stop


    把apache作為linux的啟動就運行服務程序
    執行如下操作:
    cp /usr/apache/bin/apachectl /etc/rc.d/init.d/httpd
    確認linux以前安裝的httpd(apache)不需要了,你可覆蓋掉以前apache的httpd文件。
    chkconfig --add httpd

    別忘了,運行linux的setup,把httpd服務默認設定為自動運行。

    到現在,你就可用另一種方式來啟動、關閉apache了。如
    service httpd start


    配置httpd.conf方法
    老生常談,先配置文件跟路徑,配置監聽埠等。
    下面,就說說配置proxy_ajp了。
    #載入解析模塊(windows下,或linux採用動態載入模式下需配置。前面我們的linux編譯時把下面的模塊嵌入到了apache中,所以不用再載入)
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so


    #禁止使用proxy_ajp代理的目錄:
    ProxyPass /images/ !

    #使用proxy_ajp代理;下面的配置,是把所有目錄全用代理(當然,還會跟上面的禁用配置組合成完整的規則)
    ProxyPass / ajp://127.0.0.1:8009/
    ProxyPassReverse / ajp://127.0.0.1:8009/


    配置到現在,重啟一下apache,就可通過apache來訪問tomcat的服務了。

    其他說明

    1、apache對tomcat的支持歷史:apache第2.1版本后,內置了proxy_ajp,而jk2已經沒人開發了,jk則支持到apache的2.0.58版本。
    proxy_ajp配置較簡單,但可配置性還不如jk2,主要表現在proxy_ajp目前只支持配置到目錄,還不支持對文件名稱的pattern模式匹配(即還不能定義到只對jsp文件起作用)。

    2、因為proxy_ajp的配置,還不支持對文件名稱的pattern模式匹配,所以你要特別注意:
    ——盡量把jsp和靜態文件和圖片路徑分不同的目錄來管理;
    ——對於靜態文件和圖片路徑,如/images,你可用「ProxyPass /images !」來禁止ProxyPass,從而來讓apache來直接處理圖片的請求。
    ——關於apache的ssi(即shtml,include)與tomcat的集成時,shtml文件不能處於ProxyPass的控制下(即不能在ProxyPass目錄),而shtml調用的jsp須在ProxyPass有效控制下;

    寫到這裡,最後感嘆一聲,如果proxy_ajp能支持文件名稱匹配模式,那真是太完美了。期待著那一天。

    2006.6.18 父親節中的老葉
    轉貼本文,請註明本文的原始出處:http://www.sooq.cn/bbs/thread.jspa?threadID=32375&tstart=0
    有問題請跟貼。
《解決方案》

發出一聲感嘆,你的帖子實在是很有參考價值

但是,這樣的帖子實在太多了:
1 能不能把你配置過的東西放上來;
2 做過壓力測試了嗎?分析他的性能了嗎?
3 jk誰說只能到apache2.0.58?
《解決方案》

呵呵,只是感覺說的不錯,要是你看哪不對,可以指出。這樣。我們大家都可以更加深刻的理解它!
《解決方案》

好樣的!!!!!!!!!

《解決方案》

FC5系統默認安裝的apache和tomcat整合

《解決方案》

回復 #1 權老實 的帖子

不錯,挺好的,再再上tomcat虛擬機的配製,就完整:


<!-- This Host is the first "Virtual Host": http://www.example.com/ -->
<Host name="www.example.com" appBase="/home/example/webapp">
<Context path="" docBase="."/>
</Host>
《解決方案》

急!急!!!!!!!

這樣做下來,那虛擬主機怎設,我在網站的目錄下沒有產生WEB-INF目錄?還是有問題
  
我在server.xml 中加了這麼一段,做Virtual Host :


<Host name="www.example.com" appBase="/home/example/webapp">
<Context path="" docBase="."/>
</Host>
還要怎麼設置???????????web.xml要進行設置嗎?????????????
《解決方案》

好東東,收了!!!!!!!!!!1
《解決方案》

我寫了篇關於RHEL5/CentOS5的整合tomcat5及apache的貼子,有興趣的開看下

http://hi.baidu.com/yuhongchun027,直接點Apache 篇,在RHEL5下測試通過.....
《解決方案》

有沒有關於tomcat apache 集群負載均衡的相關資料呢?
一般來說,就是指有三台伺服器,每個伺服器跑2個tomcat,其中一台伺服器為主伺服器。三台伺服器共同承擔著網站。




[火星人 ] [轉貼]最新版Apache2.2與Tomcat的整合指南已經有340次圍觀

http://coctec.com/docs/service/show-post-29056.html