Tomcat與Apache HTTPD的集成

openkk 12年前發布 | 5K 次閱讀 5.2.1版本發布

前言

最近讀<Apache Tomcat7 essential>, 書中有介紹了TOMCAT 7與Apache httpd 的集成,特記錄如下,以備后查。

背景

TOMCAT偏向應用服務器,前端部分使用HPPTD更合適,針對靜態的頁面請求,httpd的性能要較tomcat高。使用前端可以隱藏后端服務器的相關信息,如端口等。

安裝httpd,tomcat,mod_jk.so

從官網下載httpd,tomcat,典型安裝即可,tomcat 7 最好安裝JDK6,雖然允許只安裝JRE6。默認安裝下httpd使用80 端口,tomcat使用8080端口。

二者的集成可以通過兩種連接器實現。分別為mod_proxy.so & mod_jk.so。 依介紹jk的性能要好于proxy,同時支持load balance. 下載支持AJP的TOMCAT連接器,mod_jk.so windows下使用的版本。將mod_jk.so復制到apache的modules目錄下。在conf目錄下新增配置文件,假設命名為mod- jk.conf,內容如下:

LoadModule jk_module modules/mod_jk.so 
JkWorkersFile conf/workers.properties
JkLogFile logs/jklogs.log
JkLogLevel Info
JkMount /sample/* node1

說明如下:從modules目錄下加載mod_jk.so文件, 連接器的工作者線程的配置信息在conf目錄下的workers.properties文件中(后面會有說明),事件的LOG記錄在logs目錄下的 jklogs.log文件中。LOG的等級為Info。 最后一行指出,當碰到訪問路徑是/sample開頭的URL時,將請求轉至node1(該節點信息就是在workers.properties中進行配 置),JkMount的mapping部分可以出現多行,進行多個模式的匹配。 下面我們給出workers.properties的文件內容,如下:

1 worker.list=node1 2 worker.node1.port=8009  3 worker.node1.host=10.0.2.15 4 worker.node1.type=ajp13 5 worker.node1.lbfactor=1

說明如下:指定了節點信息,該內容同conf文件中的JkMount所指定的名稱。端口號,必須與Tomcat中的server.xml文件 中<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />所定義的port一致。host指定了主機地址,(但依我目前的做的測試,不管主機地址填什么,mod_jk.so都是將請求轉給 127.0.0.1來接受,也就是host指向其他的機器好像沒有作用)。lbfactor參數是與load balancing有關的。

總結

配置完畢后,重啟apach httpd。

http://127.0.0.1 訪問的是httpd

http://127.0.0.1/samples 即實際訪問的是tomcat下的http://127.0.0.1:8080/samples,從而達到自動轉發的目的

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!