JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Application Server » Tomcat  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 [今日筆記]一個IP多個Domain Name分別對應不同的appbase
zero8rx7

初心者 != 粗心者



發文: 253
積分: 1
於 2007-01-12 16:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
整理一下之前各位先進的筆記及今日下午的測試之後
交了一份筆記給Boss 也順道post 上來讓大家也能參考一下
如有錯誤的地方,還請不吝指教 ^ ^

謝謝

Tomcat Virtual Host

實做以一個IP多個Domain Name分別對應不同的application base 目錄

測試環境: OS:WinXP sp2 Tomcat:5.5.17 Browser:MSIE 6.0.2900.2180

Step 1. 建立測試環境(如果domain name已在DNS 上註冊,可以跳至下ㄧ步驟 )

請先修改 %SystemRoot%\system32\drivers\etc\hosts
hosts:
1
127.0.0.1       localhost

增加測試的domain name 對應修改後如下:
1
2
3
127.0.0.1       localhost
127.0.0.1       tw.test.pcc.com
127.0.0.1       tw.test.tsmc.com

Step 2. 在Tomcat 上佈置Virtual Host 設定

請修改%CATALINA_HOME%\conf\server.xml

修改<Conector> element 的port attribute 修改為 80
1
2
3
<Connector port="80" …
… 內略
…/>


在<Engine> element 內加入欲新增的Host 設定
1
2
3
4
5
6
7
8
9
<Host name="tw.test.pcc.com" appBase="c:\testwebapps"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>
      
<Host name="tw.test.tsmc.com" appBase="webapps2"
    unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>

※appBase 可以是相對於%CATALINA_HOME% 的相對路徑或是絕對的系統路徑都可

如果希望該Host 能夠將Access log獨立為一個Log file,
可以在<Host> element內增加以下設定
1
2
3
<Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs"  prefix="$yourLogName_access_log." 
    suffix=".txt"  resolveHosts="false"  pattern="combined"/>

※此設定可依您的需求做取捨

Step 3. 在您所設定的appBase 目錄內放入Web Application

C:\testwapps and %CATALINA_HOME%\webapps2 內,
將%CATALINA_HOME%\webapps/ROOT 複製過來,
再將您的web application 目錄也放置該對應的appBase

Step 4. 設定各個Context (Web Application)設定

請在%CATALINA_HOME%\conf\Catalina 內,
依照<Host> element 的 name 新增目錄如下
1
tw.test.tsmc.com

1
tw.test.pcc.com

在此目錄內,可以依照Web Application 的名稱來撰寫xml設定檔,
假如Web Application 目錄名為tomcat-docs,其設定檔就如以下設定:
tomcat-docs.xml
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="./tomcat-docs" path="/tomcat-docs">
  <Valve className="org.apache.catalina.valves.AccessLogValve"
    directory="logs"  prefix="tomcatDocs_access_log." 
    suffix=".txt" resolveHosts="false" pattern="combined"/>  
</Context>

* 此種設定方式,可以為一個<Host>內多含個Web Application 時,
減少server.xml 的設定,以方便維護及增加可讀性.

完成以上設定之後,即可進行測試

http://tw.test.pcc.com/ 連結至c:\testwebapps\ROOT\index.jsp
http://tw.test.pcc.com/tomcat-docs 連結至c:\testwebapps\tomcat-docs\index.html
http://tw.test.tsmc.com 連結至%CATALINA_HOME%\ROOT\index.jsp
http://tw.test.tsmc.com/tomcat-docs 連結至%CATALINA_HOME%\tomcat-docs\index.html

附記:小小測試

如果您的<Host>內只會放一個Web Application 且希望讓user 可以使用
http://$yourDomainName 的方式連結,可以參考以下的測試

server.xml
1
2
3
<Host name="$yourDomainName" appBase="webapps\$yourApplication">
      <Context docBase="./" path="" />
</Host>


好~來測試一下!!

http://$yourDomainName  連結至%CATALINA_HOME%\webapps\$yourApplication\index.html


zero8rx7 edited on 2007-01-15 00:41
reply to postreply to post
專長==>將簡單的事情複雜化@ @"

話題樹型展開
人氣 標題 作者 字數 發文時間
10557 [今日筆記]一個IP多個Domain Name分別對應不同的appbase zero8rx7 2882 2007-01-12 16:33
6359 Re:[今日筆記]一個IP多個Domain Name分別對應不同的appbase doris715 408 2008-08-13 15:33
6299 Re:[今日筆記]一個IP多個Domain Name分別對應不同的appbase johnsoh 62 2008-08-13 15:51
6517 Re:[今日筆記]一個IP多個Domain Name分別對應不同的appbase doris715 116 2008-08-13 15:53
» JWorld@TW »  Application Server » Tomcat

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8