在我們發佈項目的時候,通常都是打一個war包,然後上傳到tomcat的webapp目錄下,然後啓動tomcat服務器,這個時候,我們想要訪問我們的項目,通常是用“IP:PORT/項目名”的方式來訪問的。
但是由於項目要部署在正式的服務器上,並且我們的訪問地址就只能是甲方申請的域名,這個時候要怎麼搞呢?
一、給tomcat添加context
先來說一下步驟:
首先我們需要修改tomcat下面conf文件夾下server.xml文件,在最下方的host標籤下面,我們添加一個context標籤。
<Context path="" reloadable="false" docBase="指定的項目文件路徑">
<Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/>
</Context>
這個context就是我們需要發佈的,不帶項目名稱就可以訪問的項目所需要的配置。
在docBase下面我們可以配置我們項目所在的文件夾的目錄,例如:/usr/local/deploy/ymqynewback
配置好這個context之後,我們可以在我們新建的這個發佈目錄/usr/local/deploy/ymqynewback下面,放入我們所打的war包裏面的東西,例如:
如圖所示,我們打的war包就是我們項目中webroot目錄下面的所有的文件,包括生成的classsis文件等等。類比maven項目就和target目錄下面的東西差不多,我們可以直接把webroot打成一個zip包,或者target打成一個zip包,然後上傳到我們的服務器‘/usr/local/deploy’目錄下面解壓,然後使用unzip命令解壓我們打的zip包。例如:
我們打一個這樣的包,在服務器上面解壓縮:
unzip WebRoot.zip
然後我們可以把解壓之後的WebRoot文件夾重命名爲ymqynewback這個文件夾(原來的ymqynewback可以先刪除)。
這樣就可以了,然後我們去啓動tomcat:
./startup.sh
這樣我們就可以直接通過訪問域名或者localhost:8080來訪問我們的項目了。
二、context解釋
<Context>元素的屬性:
path:
指定訪問該Web應用的URL入口,即虛擬文件目錄。
如果配置path="test"的話,那麼我們訪問項目的時候需要訪問的地址後面需要加上test
瀏覽器訪問地址爲:"http://IP地址或域名:端口/test"
paht可以爲空字符串,爲空字符串時表示此項目爲Tomcat默認的項目。
docBase:
docBase除了可以爲本地項目WebRoot絕對路徑,也可以是相對Tomcat的webapps目錄的成品項目(可以理解爲“war文件解壓後的項目”)路徑。
如第一項裏面我們所做的配置就是把‘/usr/local/deploy/ymqynewback’配置到docBase下面,就相當於是項目目錄了。
reloadable:
如果這個屬性設爲true,tomcat服務器在運行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄下class文件的改動, 如果監測到有class文件被更新的,服務器會自動重新加載Web應用。
另外需要注意的是我們的path爲空的context只能指定一個,因爲這個相當於是默認的啓動項目。