主要是通過配置<Tomcat安裝目錄>/conf/server.xml文件
步驟:
1、打開server.xml,在</Host>的上一行添加內容格式如下
<Context path="" reloadable="true" docBase="<項目名>"/>
如:
<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- 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 --> <!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> <Alias>www.123.org</Alias> <Alias>www.abc.com</Alias> <Context docBase="virgocloud" path="" reloadable="true"></Context> </Host> </Engine> |
另:如果想要只輸入IP或域名就可以訪問的話,那就把Tomcat的端口設置為80(但需確認此端口有沒有其它程序占用),修改如下:
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
注:通過上面的設置有一個問題就是項目會重復加載兩次.
原因分析
1.當為 Host 容器 設置了 appBase 屬性時, Tomcat 會在啟動時自動加載 appBase 指定目錄下的所有合法工程;
2. 由於同時又通過 Context 的docBase 屬性設置了Tomcat 默認工程, 所以,指定的 jkcm,virgocloud工程又會被加載一次
基於以上兩點,造成了 jkcms,virgocloud工程的重復加載。
解決辦法
1. 新建一個目錄專門用於存放工程, 如:C:\virgocloud\software\apache-tomcat-7.0.57\deployproject
2. 將工程存放到以上目錄下:即:C:\virgocloud\software\apache-tomcat-7.0.57\deployproject
3. 在 Context 容器中設置 docBase 屬性, 如:
<Context path="" docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\jkcms" />
<Host name="www.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> <!-- 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 --> <!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> <Alias>www.123.org</Alias> <Alias>www.abc.com</Alias> <Context docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\virgocloud" path=""reloadable="false"></Context> </Host> <Host name="cms.abc.com" appBase="webapps" unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"> <!-- 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 --> <!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> <Context docBase="C:\virgocloud\software\apache-tomcat-7.0.57\deployproject\jkcms" path=""reloadable="false"></Context> </Host> |
至此問題解決,重啟Tomcat服務器就可以通過不加項目名訪問此項目.
注意:記得把webapps目錄下的原項目刪除
轉載:請注明www.virgocloud.com或www.xujin.org