1、 環境
Apache2.0.43.0
Tomcat 4.1.13
mod_jk-2.0.43
jdk 1.4
Windows 2003
關鍵文件位置:
Server.xml:$tomcat_home/conf
Httpd.conf:$apache_home/conf
Mod_jk.conf:$tomcat_home/jk/
2、 假設背景
假設頂級域名www.abc.com,要架設site1.abc.com和site2.abc.com。site1和site2兩個二級站點應用都在一臺服務器上,假設對外IP:100.100.100.100
3、 mod_jk整合Apache、Tomcat
這個內容網上有很多介紹,也很簡單,這裏就不說了。
4、 增加Tomcat虛擬主機
打開Tomcat的server.xml文件,修改默認的host段,類似如下:
<Host name="site1.abc.com" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="d://workspace//site1//webapp//" debug="0"
reloadable="true" crossContext="true">
</Context>
</Host>
並增加site2虛擬主機,類似如下:
<Host name="site2.abc.com" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="d://workspace//site2//webapp//" debug="0"
reloadable="true" crossContext="true">
</Context>
</Host>
注意其中紅色和藍色加粗文字。
site2其實就是拷貝site1再對藍色部分進行一下修改。
當然根據你的具體情況,也可以增加或者修改其他的配置。
5、 增加Apache虛擬主機
打開Apache的httpd.conf文件,在最後的VirtualHost部分增加類似如下內容:
<VirtualHost *:80>
ServerName site1.abc.com
DocumentRoot "d:/workspace/site1/webapp"
</VirtualHost>
<VirtualHost *:80>
ServerName site2.abc.com
DocumentRoot "d:/workspace/site2/webapp"
</VirtualHost>
這裏DocumentRoot內容和Tomcat的Context中docBase一般來說是一致的。
找到#NameVirtualHost *這行,默認是註釋掉的,修改爲:
NameVirtualHost *:80
如果不打開這個配置,Apache會報錯“default virtualhost overlap on port 80,the first has precedence”
如果不加“:80”,雖然也能運行起來,但Apache啓動會報錯。
VirtualHost *:80--mixing * prot and non-* ports with a NameVirtualHost address is not supported,proceeding with undefined results
6、 Hosts配置
由於本機沒有DNS解析,測試的時候,在瀏覽器地址欄輸入site1.abc.com,是找不到服務器的。爲了測試,我們需要增加這樣的主機,讓Apache能找到主機。
文本打開windows/system32/drivers/etc/Hosts文件,增加兩行
127.0.0.1 site1.abc.com
127.0.0.1 site2.abc.com
啓動Apache和Tomcat服務,在地址欄分別敲入site1.abc.com和site2.abc.com。應該是都可以訪問了。
7、 實際部署
實際部署的時候,當然是不需要修改Hosts文件了,因爲Hosts文件只是對本機有效。通常ISP提供商應該會有系統來定義二級域名轉發,在那裏定義二級域名對應的IP。
site1.abc.com--->100.100.100.100
stei2.abc.com--->100.100.100.100
這樣,就可以實際訪問兩個二級域名了。但是DNS配置好後,可能不會立刻生效,據說是2~24小時生效。
8、 其他
雖然經過上面配置,基本上沒什麼問題了,但因爲各個應用使用的技術不一樣,可能會出現訪問不正常的情況。
如果用了struts框架,發現*.do的請求沒有響應,則修改mod_jk.conf文件,增加
JkMount /*.do ajp13
如果你希望默認頁面是login.jsp而不是index.jsp,則修改httpd.conf的DirectoryIndex,將login.jsp寫到index.jsp前面
當然了,上面說的都是基本的配置,還有很多細節上的配置,其實我也不會。以上的配置,也是在朋友的幫助下做出來的,寫下來,希望可以幫助需要的朋友。有不正確的地方,還請多多指正