Centos環(huán)境下Tomcat虛擬主機(jī)配置詳細(xì)教程
最近在折騰 Tomcat 的時候,遇到了一個需求:需要在一臺服務(wù)器上跑多個網(wǎng)站,每個網(wǎng)站用不同的域名訪問。乍一看,這不就是虛擬主機(jī)的活兒嘛!但對 Tomcat 的虛擬主機(jī)配置不太熟,查了不少資料,踩了幾個坑,終于搞定了。于是就想著把整個過程整理下來,分享給有類似需求的小伙伴,希望能少走彎路。
這篇文章主要講的是在 CentOS 系統(tǒng)上,如何一步步配置 Tomcat 的虛擬主機(jī)。內(nèi)容很簡單,從目錄準(zhǔn)備到配置文件修改,再到重啟和測試,手把手帶你搞定。
1. 準(zhǔn)備虛擬主機(jī)的目錄和內(nèi)容
為每個虛擬主機(jī)創(chuàng)建獨立的目錄,并放置測試文件。

創(chuàng)建目錄
mkdir -p /var/www/site1 mkdir -p /var/www/site2
添加測試文件
echo "Welcome to Site 1" > /var/www/site1/index.html echo "Welcome to Site 2" > /var/www/site2/index.html
2. 修改 Tomcat 的 server.xml 配置文件
編輯 Tomcat 的 server.xml 文件:
vim $CATALINA_HOME/conf/server.xml
找到 <Engine> 標(biāo)簽(通常在 <Service name="Catalina"> 下),并在其中添加兩個 <Host> 配置塊。
修改后的配置示例:

<Engine name="Catalina" defaultHost="localhost">
<!-- 默認(rèn)的 localhost 配置 -->
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="${catalina.home}/webapps/ROOT" />
</Host>
<!-- 虛擬主機(jī) 1 -->
<Host name="www.site1.com" appBase="" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/var/www/site1" />
</Host>
<!-- 虛擬主機(jī) 2 -->
<Host name="www.site2.com" appBase="" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/var/www/site2" />
</Host>
</Engine>配置說明
name:虛擬主機(jī)的域名,例如www.site1.com和www.site2.com。appBase:設(shè)置為空字符串"",因為我們直接指定了docBase。 對應(yīng)應(yīng)用部署的目錄docBase:虛擬主機(jī)的文檔根目錄,分別為/var/www/site1和/var/www/site2。path:設(shè)置為"",表示虛擬主機(jī)的根路徑(/)。
補(bǔ)充說明:Engine節(jié)點 是核心組件之一 用于管理虛擬主機(jī) 下面可以定義多個host節(jié)點
訪問測試

4. 重啟 Tomcat
重新啟動 Tomcat 以應(yīng)用新的配置:
$CATALINA_HOME/bin/shutdown.sh $CATALINA_HOME/bin/startup.sh
5. 測試虛擬主機(jī)
在瀏覽器中訪問以下地址:
訪問 http://www.site1.com:8080,應(yīng)顯示 Welcome to Site 1。
訪問 http://www.site2.com:8080,應(yīng)顯示 Welcome to Site 2。
注意事項
- 防火墻配置 如果您的 Tomcat 運(yùn)行在非默認(rèn)端口(如 80),需要確保防火墻允許該端口的流量。
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload
- DNS 配置 如果在生產(chǎn)環(huán)境中使用,需要在 DNS 服務(wù)器中配置
www.site1.com和www.site2.com的域名解析到服務(wù)器的公網(wǎng) IP。 - 生產(chǎn)環(huán)境建議
- 使用 Apache 或 Nginx 作為反向代理,將域名請求轉(zhuǎn)發(fā)到 Tomcat 的虛擬主機(jī)配置 HTTPS 以保證安全性。
總結(jié)
搞定之后回頭看,其實配置 Tomcat 虛擬主機(jī)并不難,關(guān)鍵是要細(xì)心,別漏掉小細(xì)節(jié)。比如:
- 目錄路徑:一定要確認(rèn)
docBase指向的目錄存在,并且權(quán)限設(shè)置正確。 - 防火墻:別忘了開放 Tomcat 的端口,不然你本地測得好好的,外網(wǎng)卻訪問不了。
- DNS 配置:如果是線上環(huán)境,域名解析必須指向服務(wù)器的公網(wǎng) IP。
- 安全性:生產(chǎn)環(huán)境建議用 Nginx 或 Apache 做反向代理,別直接暴露 Tomcat,順便把 HTTPS 配置上。
以上就是Centos環(huán)境下Tomcat虛擬主機(jī)配置詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Tomcat虛擬主機(jī)配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Maven使用tomcat8-maven-plugin插件的詳細(xì)教程
這篇文章主要介紹了Maven使用tomcat8-maven-plugin插件的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
解決Tomcat使用shutdown.bat關(guān)閉會將其他Tomcat關(guān)掉的問題
這篇文章主要介紹了解決Tomcat使用shutdown.bat關(guān)閉會將其他Tomcat關(guān)掉的問題 ,解決方法很簡單,具體內(nèi)容詳情大家跟隨小編一起通過本文學(xué)習(xí)吧2018-10-10
解決運(yùn)行Tomcat之后仍然出現(xiàn)404的問題
這篇文章主要介紹了解決運(yùn)行Tomcat之后仍然出現(xiàn)404的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Tomcatc3p0配置jnid數(shù)據(jù)源2種實現(xiàn)方法解析
這篇文章主要介紹了Tomcatc3p0配置jnid數(shù)據(jù)源2種實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
Tomcat的安裝與使用及Maven與Servlet的使用教程
這篇文章主要介紹了Tomcat的安裝與使用及Maven與Servlet的使用教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07

