Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié)
為什么可以隱式部署,是因?yàn)?Tomcat 配置了默認(rèn)主機(jī)對(duì)應(yīng)應(yīng)用 webapps,在 Engine 下你也可以配置其他主機(jī)(要保證你配置的主機(jī)在 ect/host 下有對(duì)應(yīng)關(guān)系),但是 appBase 要確保唯一。保證每臺(tái)主機(jī)下資源隔離,不會(huì)互相亂竄。如下所示:
提示:這里所說(shuō)的主機(jī)換個(gè)說(shuō)法叫做域名,localhost 是 127.0.0.1 的域名,otherlocalhost 也是 127.0.0.1 的一個(gè)域名。比如 localhost 域名對(duì)應(yīng)的 appBase 目錄是默認(rèn)的 webapps,webapps 下面又對(duì)應(yīng)著 n 多網(wǎng)站應(yīng)用。當(dāng)你用 http://localhost:8080 訪問(wèn)時(shí),Tomcat 就知道你要去訪問(wèn) webapps 目錄下的某個(gè)網(wǎng)站。當(dāng)你用 http://otherlocalhost:8080 訪問(wèn)時(shí),Tomcat 就知道你要去訪問(wèn) otherHostWeb 目錄下的某個(gè)網(wǎng)站。
<Server port='8005' shutdown='SHUTDOWN'> <Service name='Catalina'> <Connector port='8080' protocol='HTTP/1.1' connectionTimeout='20000' redirectPort='8443' /> <Engine name='Catalina' defaultHost='localhost'> <Host name='localhost' appBase='webapps' unpackWARs='true' autoDeploy='true'> <Host name='otherlocalhost' appBase='otherHostWeb' unpackWARs='true' autoDeploy='true'> </Engine></Service></Server>假設(shè)現(xiàn)在我有個(gè)網(wǎng)站 MyWeb1,里面有個(gè) abc.html 頁(yè)面,內(nèi)容如下:
<h1>Hello World11111!!!</h1>現(xiàn)在準(zhǔn)備把 MyWeb1 部署到 Tomcat 服務(wù)器上,可以直接把 MyWeb1 網(wǎng)站丟到默認(rèn)主機(jī) webapps 下面。如下圖示:
問(wèn)題:怎么訪問(wèn) webapps 主機(jī)下面的網(wǎng)站呢?
因?yàn)?webapps 主機(jī)下沒(méi)有指定 path 訪問(wèn)前綴,所以默認(rèn)就是 / 前綴。然后你想訪問(wèn) webapps 下哪個(gè)資源文件,直接定位到路徑即可,比如:abc.html 頁(yè)面,訪問(wèn)路徑:http://localhost:8080/MyWeb1/abc.html 即可。如果 MyWeb1 網(wǎng)站下有首頁(yè) index.html、index.jsp 等存在時(shí),直接訪問(wèn) http://localhost:8080/MyWeb1 就能夠進(jìn)入首頁(yè)。同理,訪問(wèn) webapps 主機(jī)下其他網(wǎng)站也是一個(gè)道理。
比如 docs 網(wǎng)站,訪問(wèn)路徑:http://localhost:8080/docs比如 manager 網(wǎng)站,訪問(wèn)路徑:http://localhost:8080/manager比如 host-manager 網(wǎng)站,訪問(wèn)路徑:http://localhost:8080/host-manager比如 examples 網(wǎng)站,訪問(wèn)路徑:http://localhost:8080/examples最后提醒下每個(gè)網(wǎng)站都會(huì)有自己的服務(wù)處理類 Servlet,而這些 Servlet 都是通過(guò) WEB-INF/web.xml 集成進(jìn)來(lái)。
隱式部署有點(diǎn)不友好就是必須要把網(wǎng)站應(yīng)用放到 webapps 主機(jī)下(配置一臺(tái)主機(jī)的情況下)。如果這個(gè)主機(jī)下文件過(guò)多,容易出錯(cuò)。
2、顯示部署在 Server.xml 文件中直接配置 Context 網(wǎng)站應(yīng)用即可,如下:
<Server port='8005' shutdown='SHUTDOWN'> <Service name='Catalina'> <Connector port='8080' protocol='HTTP/1.1' connectionTimeout='20000' redirectPort='8443' /> <Engine name='Catalina' defaultHost='localhost'> <Context path='/myWeb1' docBase='/Users/gwm/Downloads/MyWeb1' reloadable='true'> </Engine></Service></Server>appBase:相當(dāng)于是一個(gè)主機(jī)的根目錄 /,默認(rèn)名稱叫做 webappspath:在 webapps 主機(jī)下會(huì)有多個(gè)網(wǎng)站,可以通過(guò) path 來(lái)進(jìn)行區(qū)分docBase:path 訪問(wèn)網(wǎng)站文件具體目錄,比如上面的 abc.html 就在 /Users/gwm/Downloads/MyWeb1 文件目錄下。因?yàn)?docBase 可以指定網(wǎng)站資源文件位置,所以你就不用將網(wǎng)站再放到之前的 webapps 主機(jī)下面。所以最終訪問(wèn) abc.html 的路徑是:http://localhost:8080/myWeb1/abc.html。
3、xml 配置部署上面顯示部署需要修改 Server.xml 全局配置文件。該文件非常重要,一般不要輕易修改,否則啟動(dòng)不了。所以就這里提供了另外一種部署方法,也是最常用的一種方法—xml 配置方式。
當(dāng)你運(yùn)行一次 Tomcat 之后,Tomcat 會(huì)自動(dòng)在 conf 文件目錄下自動(dòng)生成 /config/Catalina/localhost/ 目錄。然后你就可以在這個(gè)目錄下新建一個(gè) xml 文件。xml 文件名稱就是你網(wǎng)站的訪問(wèn)路徑。比如新建一個(gè) abc.xml 文件,如下所示:
<?xml version='1.0' encoding='UTF-8'?><Context docBase='/Users/gwm/Downloads/MyWeb1' reloadable='true'></Context>警告:這里注意聲明 xml 配置時(shí),第一行上面絕對(duì)不要有空行。否則這個(gè) xml 文件不生效。
整體目錄如下圖示:
最終訪問(wèn)路徑:http://localhost:8080/abc/abc.html 推薦使用第三種方式部署服務(wù)。修改的文件都是局部文件,不會(huì)影響到其他人的部署。
到此這篇關(guān)于Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié)的文章就介紹到這了,更多相關(guān)Tomcat網(wǎng)站部署內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. tomcat部署項(xiàng)目以及與IDEA集成的實(shí)現(xiàn)2. Tomcat部署web項(xiàng)目出現(xiàn)http狀態(tài)404未找到的詳細(xì)解決方案3. Tomcat部署SpringBoot項(xiàng)目的war包的方法及詳細(xì)步驟4. intellij idea 使用Tomcat部署的項(xiàng)目位置在哪5. 關(guān)于tomcat部署應(yīng)用無(wú)法訪問(wèn)前端頁(yè)面的問(wèn)題6. 通過(guò)圖文講解Tomcat部署war包的方法步驟7. 教你在IDEA中使用Tomcat部署并啟動(dòng)Web項(xiàng)目8. Tomcat部署B(yǎng)olo動(dòng)態(tài)博客
