方式一:
https://blog.csdn.net/fachunfc/article/details/77883513 (原文地址)
網上有很多tomcat目錄下server.xml的配置的文章,但是對於初學者來說,如何理解host的標籤的配置內容確實一下轉不過彎。至少本人就是這個傻樣。
我希望我能幫助一些初學者去理解。先了解配置步驟,再理解配置的目的。
首先,host標籤的意思,根據大家的普遍意思,它表示“虛擬主機”的意思。而虛擬主機在我理解就是實際主機IP經過DNS解析後的普通文字。
<!--server.xml中host的示例配置如下-->
<Host appBase="D:\test" autoDeploy="true" name="www.test.com" unpackWARs="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>
<Context docBase="index" path="" reloadable="true" />
<Context docBase="E:\test\app2" path="/app2" reloadable="true" />
<Context docBase="app3" path="/app3" reloadable="true" source="org.eclipse.jst.jee.server:download"/>
</Host>
各個標籤的意義:
appBase:顧名思義,就是程序基地的意思,也是是存放應用程序的路徑,類似於tomcat默認的webapps,當自定義host標籤時,這個值是可以自定義的絕對路徑
aotuDeploy:是否設置程序自動裝載。不多解釋
name:你的主機名,根據需要任意命名。
unpachWARs:是否自動解壓war包。true值時,appdase下打成war包的項目會在tomcat啓動時自動解壓
Context:配置上下文,也就是對應主機下的具體子項目。
docBase指定項目的位置,可以是相對appBase的路徑,也可以是絕對路徑。如果使用相對appBase路徑的位置,則直接寫應用文件夾名字即可;
否則應該寫絕對位置,如:E:\test\app1
path:設置該項目訪問的路徑名,如:/app1 .如果path爲""--即空字符串,則訪問該主機時默認訪問該path所在的context元素下docBase所指定的項目,
path值爲""的context只能有一個。
source:沒有深究,大概意思應該是來源於某個ide。
瞭解完上訴意思之後,就可以配置了。
步驟1:配置tomcat安裝目錄下的conf目錄下的server.xml文件,直接按照上訴說明配置,保存即可。
步驟2:在C:\Windows\System32\drivers\etc 路徑下找到名爲hosts的文件,注意不是hosts.txt,是無後綴名的hosts。
用記事本打開,在最後一行添加, 域名(主機名)-------ip的映射,如,127.0.0.1 www.test.com ,保存。
!保存不了? ,那是因爲你的權限不夠,參考: http://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html
注意:映射名應該與之前配置serverxml文件中的host配置中的name值一致,否則配置無效; 行首不能有#,其代表註釋。
完成以後,如果按示例配置,即可通過主機名 www.test.com訪問了。
www.test.com:8080:訪問index項目
www.test.com:8080/app2:訪問app2項目
www.test.com:8080/app3:訪問app3項目
PS: 瞭解映射: 127.0.0.1(映射前)-------------ip地址不好記----》dns--(本地或英特網)域名解析設備映射--------------------www.test.com(映射後)
總結:
host是什麼:
多個子項目組成的大項目,他是一個功能完整、能實現實際業務完整性的項目,此時需要使用一個主機這樣的邏輯單元來管理。顯像的說,我希望這些業務由一臺電腦(假設)來完成,此時這樣的電腦就叫主機,這個主機的標識就是主機名---域名。比如淘寶,他可以買東西、買東西,瀏覽東西,這些完整的實際業務的完成,實際可以簡單的理解爲通過 www.taobao.com來完成,也可以叫這臺主機爲www.taobao.com。
什麼時候要配置多個host:
開發時可以用來測試;上線時可以分離完整的實際業務,方便管理。如:淘寶、支付寶的分離,他們都有完整(是否完整由人自定義)的業務功能。
————————————————
版權聲明:本文爲CSDN博主「Jasonfong436」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/fachunfc/article/details/77883513