Apache簡(jiǎn)介
Apache是著(zhù)名的Apache開(kāi)源網(wǎng)站的免費的WEB服務(wù)器。它更靈活,使你能夠根據自己的需要選用包含特定功能的模塊。再給你提供一條消息,現在全世界超過(guò)60%的HTTP服務(wù)器在使用Apache。
Apache與Tomcat的整合所使用的軟件及其版本:
Windows XP
Apache:2.0.58
Tomcat:4.1.13
Connector:JK1.2.15 mod_jk-apache-2.0.55.so
以上軟件(除windows)可以到Apache的網(wǎng)站上下載。
部署和配置文件將mod_jk-apache-2.0.55.so改名為mod_jk.so放到%Apache2%\modules文件夾下(此文件夾原有很多.so文件)。
在 %Apache2%\conf文件夾中建 workers.properties文件,并向其中加入相應信息,見(jiàn)后文最終配置中的workers.properties,根據你的文件位置修改相應的參數值。
然后在 %Apache2%\conf文件夾中找到http.conf文件(Apache的配置文件。),定義你的主機,以及轉發(fā)的規則,比如:JkMount /*.jsp ajp13 ,將所有jsp文件派發(fā)給Tomcat。
<VirtualHost *:80>
ServerAdmin whtandy@163.com
DocumentRoot D:\epodcms
ServerName 127.0.0.1
#Load module of mod_jk apache tomcat connecter
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkMount /*.jsp ajp13 (將所有jsp文件派發(fā))
#Load jk2 apache tomcat connecter end
</VirtualHost>
Apache中URL的Rewrite現在講究面向搜索引擎的開(kāi)發(fā)。當我們使用jsp時(shí),搜索引擎的收藏效果不是很好,所以我們可以轉義這樣的URL。比如:我們可以借助rewrite使用/blog/user/0.html來(lái)訪(fǎng)問(wèn)/blog/user/blog_show.jsp?userid=0使搜索引擎更容易搜集到我們的網(wǎng)站信息。具體配置很簡(jiǎn)單,介紹如下
首先:還是打開(kāi)%Apache2%\conf文件夾,找到http.conf文件,搜索rewrite找到#LoadModule rewrite_module modules/mod_rewrite.so,將它前面的#去掉。
然后在你要使用的VirtualHost中加入
RewriteEngine on
#打開(kāi)rewrite引擎
RewriteLog logs/rewrite.log
#rewrite日志,可選配置,建議使用
RewriteLogLevel 3
#rewrite日志等級,默認為0不記錄,所以只要使用日志,就要配置,3就全記錄了,可以更大但沒(méi)有什么意義。
RewriteRule /blog/user/(.+)\.html$ /blog/user/blog_show.jsp?userid=$1 [PT]
#轉義的規則,使用正則表達式(我也不熟,自己去研究吧),我上面的例子是將/blog/user/*.html的URL轉義成/blog/user.blog_show.jsp?userid=*。
注意后面的[PT]這是保證你這樣轉義之后Apache能將它轉給Tomcat否則Apache會(huì )自己處理這個(gè)鏈接,造成什么也得不到。
注意[PT],[R]的區別,使用[PT]在客戶(hù)地址欄的顯示還是*.html,如果將[PT]換成[R]則地址欄也會(huì )顯示成.jsp
我的最終配置:
httpd.conf
<VirtualHost *:80>
ServerAdmin whtandy@163.com
DocumentRoot D:\epodcms
ServerName 127.0.0.1
#Load module of mod_jk apache tomcat connecter
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkMount /*.jsp ajp13
#Load jk2 apache tomcat connecter end
RewriteEngine on
RewriteLog logs/rewrite.log
RewriteLogLevel 3
RewriteRule /blog/user/(.+)\.html$ /blog/user/blog_show.jsp?userid=$1 [PT]
RewriteRule /blog/(.+)\.html$ /blog/user/blog_show.jsp?logid=$1 [PT]
</VirtualHost>
workers.properties
workers.tomcat_home="d:/Tomcat4"
#讓mod_jk模塊知道Tomcat的安裝路徑
workers.java_home=D:\JDK1.5
#讓mod_jk模塊知道jdk路徑
ps=\
worker.list=ajp13
#這里是關(guān)鍵,名字要和httpd.conf的一致。如果這里改了httpd.conf也要改。
worker.ajp13.port=8009
#工作端口,tomcat的jk監聽(tīng)端口,可以查看Tomcat 的Server.xml中有port="8009" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"這樣的Connector
worker.ajp13.host=localhost
#Tomcat所在機器,如果安裝在與apache不同的機器則需要設置IP
worker.ajp13.type=ajp13
#類(lèi)型,Apache與Tomcat之間傳遞使用的協(xié)議
worker.ajp13.lbfactor=1
#這個(gè)沒(méi)有搞清楚