配置Apache+Tomcat支持多個應用,即多個二級域名

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.comsite2.abc.comsite1site2兩個二級站點應用都在一臺服務器上,假設對外IP100.100.100.100

3、  mod_jk整合ApacheTomcat

這個內容網上有很多介紹,也很簡單,這裏就不說了。

4、  增加Tomcat虛擬主機

打開Tomcatserver.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虛擬主機

打開Apachehttpd.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內容和TomcatContextdocBase一般來說是一致的。

找到#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

啓動ApacheTomcat服務,在地址欄分別敲入site1.abc.comsite2.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.confDirectoryIndex,將login.jsp寫到index.jsp前面

 

當然了,上面說的都是基本的配置,還有很多細節上的配置,其實我也不會。以上的配置,也是在朋友的幫助下做出來的,寫下來,希望可以幫助需要的朋友。有不正確的地方,還請多多指正

發佈了16 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章