Apache2.2.4整合Tomcat6.0.16三種方式的詳細(xì)配置過程

關(guān)鍵字: apache2.2.4整合tomcat6.0.16三種方式的詳細(xì)配置過程

 

通常都是通過JK_MOD來整合Apache和Tomcat,但是Apache2.2版本以上整合Tomcat可以直接通過AJP_PROXY來完成,很方便。下面把幾種方式都簡(jiǎn)單講講。

假設(shè)一個(gè)Apache,兩個(gè)Tomcat容器,訪問 a.hackang.cn 和 b.hackang.cn 分別對(duì)應(yīng) tomcata 和 tomcatb 的應(yīng)用

第一種方式:JK_PROXY

安裝好Apache和Tomcat,下載mod_jk-1.2.26-httpd-2.2.4.so (2.2.4對(duì)應(yīng)著Apache版本)

將mod_jk-1.2.26-httpd-2.2.4.so 放到Apache安裝目錄的modules文件夾下。

在Apache安裝目錄的conf文件夾創(chuàng)建workers.properties配置文件,內(nèi)容如下:

#下面是Tomcat實(shí)例列表

worker.list=tomcata,tomcatb

#tomcata實(shí)例配置

worker.tomcata.host=127.0.0.1

worker.tomcata.port=8009

worker.tomcata.type=ajp13

#tomcatb實(shí)例配置

worker.tomcatb.host=127.0.0.1

worker.tomcatb.port=9009

worker.tomcatb.type=ajp13

編輯apache配置文件httpd.conf,在文件末尾加上以下內(nèi)容:

#以下為tomcat集成配置部分

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

#如果機(jī)器有多個(gè)IP地址請(qǐng)務(wù)必使用*號(hào)

NameVirtualHost *:80

 

#a.hackang.cn虛擬站點(diǎn)

<VirtualHost *:80>

ServerName a.hackang.cn

JkMount /*.* tomcata

JkMount /* tomcata

DirectoryIndex index.jsp

</VirtualHost>

#b.hackang.cn虛擬站點(diǎn)

<VirtualHost *:80>

ServerName b.hackang.cn

JkMount /*.* tomcatb

DirectoryIndex index.jsp

</VirtualHost>

下面是Tomcat的配置,很重要。

tomcata可以使用默認(rèn)配置,如果想訪問 a.hackang.cn直接顯示某應(yīng)用的首頁,可在tomcata的配置文件server.xml里面的host節(jié)點(diǎn)間加上

<Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true"

charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="a.hackang.cn" docBase="E:\myweb\a"

       mapperClass="org.apache.catalina.core.StandardContextMapper" path=""  privileged="false" reloadable="false" swallowOutput="false" useNaming="true"

       wrapperClass="org.apache.catalina.core.StandardWrapper">

</Context>

docBase指向的你應(yīng)用所在的文件夾,不能將此應(yīng)用部署到tomcata的webapps文件夾中。否則就有兩個(gè)應(yīng)用了,一個(gè)是根訪問路徑,一個(gè)是根訪問路徑+應(yīng)用名了。

tomcatb的配置要稍加修改,修改 conf/server.xml文件

<Server port="8005" shutdown="SHUTDOWN">將此處的端口號(hào)改掉,不能與tomcata的相同,比如可以改成 9005

修改默認(rèn)的8080端口為9090,修改后如下:

<Connector port="9090" maxHttpHeaderSize="8192"

             maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

             enableLookups="false" redirectPort="8443" acceptCount="100"

             connectionTimeout="20000" disableUploadTimeout="true" />

 

修改端口號(hào)為8009的Connector

修改前為:

<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

修改后:

<Connector port="9009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

此處的9009跟workers.properties文件中tomcatb的端口號(hào)是一致的。

如果也想訪問 b.hackang.cn時(shí)直接顯示應(yīng)用b,配置方法同a,以上已經(jīng)提及,只需將docBase="E:\myweb\a" 改成 docBase="E:\myweb\b"即可

最后編輯C:\WINDOWS\system32\drivers\etc\hosts文件,在最后加上兩個(gè)映射

  127.0.0.1  a.hackang.cn

  127.0.0.1  b.hackang.cn

 

至此,配置就結(jié)束了,可以用Apache的Test Configuration命令測(cè)試一下配置文件,如果沒有問題,啟動(dòng)Apache,再分別啟動(dòng)兩個(gè)Tomcat就ok了

第二種方式配置: ajp

apache2.2以上版本,無需使用jk_mod來集成tomcat,直接使用ajp,很方便。

修改apache配置文件httpd.conf

啟用mod_proxy_ajp

#LoadModule proxy_module modules/mod_proxy.so

#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

把這兩行前面的#去掉即可

然后在末尾加上

<VirtualHost *:80>

ProxyPass / ajp://127.0.0.1:8009/

ProxyPassReverse / ajp://127.0.0.1:8009/

ServerName a.hackang.cn

</VirtualHost>

<VirtualHost *:80>

ProxyPass / ajp://127.0.0.1:9009/

ProxyPassReverse / ajp://127.0.0.1:9009/

ServerName b.hackang.cn

</VirtualHost>

搞定!!!方便吧,我現(xiàn)在用的就是這種。

第三種方式

第三種方式其實(shí)跟第二種差不多,只不過用的是http端口

<VirtualHost *:80>

ProxyPass / http://127.0.0.1:8080/

ProxyPassReverse / http://127.0.0.1:8080/

ServerName a.hackang.cn

</VirtualHost>

<VirtualHost *:80>

ProxyPass / http://127.0.0.1:9090/

ProxyPassReverse / http://127.0.0.1:9090/

ServerName b.hackang.cn

</VirtualHost>

此處的9090跟tomcatb中配置的http端口一致

 

到此Apache整合Tomcat全部結(jié)束,若要加強(qiáng)tomcat處理靜態(tài)資源的能力,可以啟用APR服務(wù)。