2010年11月19日 星期五

轉貼 Apache 整合 Tomcat

由於想要使用 jsp + mysql 來開發, 但是 tomcat 的路徑有包含 要輸入 port 8080, 覺得很麻煩, 而且想要同時使用 php 和 jsp, 因為 phpmyadmin 還蠻好用的說

過慮了一些資料 節錄下面兩個方法


1. 轉貼自 javaworld 的文章 , http://www.javaworld.com.tw/jute/post/view?bid=9&id=87446&sty=1&tpg=1&age=-1 , javaer 大大的做法


他提到
其實tomcat 5.x版及apache2.x版之後,都已經內建connector了
根據文件的說法,是ready to use的

步驟如下:
1.安裝tomcat及apache
2.打開{apache安裝目錄}\conf\httpd.conf,依底下兩個步驟做設定。完成後,重新啟動apache,使設定生效。
1)在設定載入模組的地方:



LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


2)在設定模組的地方加入


ProxyRequests On
ProxyVia On

Order deny,allow
Deny from all
Allow from localhost

ProxyPass /img !
ProxyPass / http://localhost:8080/
ProxyPass /first http://localhost:8080/another
ProxyPassReverse / http://localhost:8080/





不過這樣設定的話, 感覺上放在 apache htdoc下的資料夾就無法開啟,因為都指向tomcat 的 wwwroot. 這樣一來 phpmyadmin就開不起來 還要額外設定就要再研究了



2. 建中先生的文章 http://blog.yam.com/u9323523/article/25178591


使用Apache Tomcat Connector來結合兩者, 可以到這裡下載
這裡版本是用
mod_jk-1.2.28-httpd-2.2.X.so,
並將檔案存放至/etc/httpd/conf/modules

在 /etc/httpd/conf.d 目錄下增加 mod_jk.conf 設定檔

------------------------------------------
[mod_jk.conf 檔案內容]
<IfModule mod_jk.c>
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkLogFile /var/log/jk.log
JkLogLevel info
JkMount /jsp/* jsp
</IfModule>

-------------------------------------------

在 /etc/httpd/conf.d 目錄下增加 workers.properties 設定檔
[workers.properties 檔案內容]
worker.list=jsp
worker.jsp.type=ajp13
worker.jsp.host=localhost
worker.jsp.port=8009


-----------------------------------------

修改Tomcat 設定檔
[server.xml]
確認 8009 Connector port 是否有開啟
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
關閉8080 server port,將這幾行mark
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

-------------------------------

完成~!

沒有留言: