Centos環(huán)境下Tomcat虛擬主機(jī)配置詳細(xì)教程
最近在折騰 Tomcat 的時(shí)候,遇到了一個(gè)需求:需要在一臺(tái)服務(wù)器上跑多個(gè)網(wǎng)站,每個(gè)網(wǎng)站用不同的域名訪問。乍一看,這不就是虛擬主機(jī)的活兒嘛!但對 Tomcat 的虛擬主機(jī)配置不太熟,查了不少資料,踩了幾個(gè)坑,終于搞定了。于是就想著把整個(gè)過程整理下來,分享給有類似需求的小伙伴,希望能少走彎路。
這篇文章主要講的是在 CentOS 系統(tǒng)上,如何一步步配置 Tomcat 的虛擬主機(jī)。內(nèi)容很簡單,從目錄準(zhǔn)備到配置文件修改,再到重啟和測試,手把手帶你搞定。
1. 準(zhǔn)備虛擬主機(jī)的目錄和內(nèi)容
為每個(gè)虛擬主機(jī)創(chuàng)建獨(dú)立的目錄,并放置測試文件。
創(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">
下),并在其中添加兩個(gè) <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è)置為空字符串""
,因?yàn)槲覀冎苯又付?nbsp;docBase
。 對應(yīng)應(yīng)用部署的目錄docBase
:虛擬主機(jī)的文檔根目錄,分別為/var/www/site1
和/var/www/site2
。path
:設(shè)置為""
,表示虛擬主機(jī)的根路徑(/
)。
補(bǔ)充說明:Engine節(jié)點(diǎn) 是核心組件之一 用于管理虛擬主機(jī) 下面可以定義多個(gè)host節(jié)點(diǎn)
訪問測試
4. 重啟 Tomcat
重新啟動(dòng) 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
。
注意事項(xiàng)
- 防火墻配置 如果您的 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é)
搞定之后回頭看,其實(shí)配置 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)文章
對一個(gè)tomcat實(shí)現(xiàn)多端口、多域名訪問的方法
這篇文章主要是介紹如何在tomcat中進(jìn)行配置,使同一個(gè)應(yīng)用可以通過不同的端口號(hào)進(jìn)行訪問。大家可能都遇到過,在某些需要進(jìn)行安全控制的場景中會(huì)應(yīng)用到,例如:不同地址段只能通過某個(gè)端口訪問。下面通過這篇文章來詳細(xì)學(xué)習(xí)下吧,有需要的可以參考借鑒。2016-11-11tomcat默認(rèn)最大連接數(shù)與調(diào)整的方法示例
本文主要介紹了tomcat默認(rèn)最大連接數(shù)與調(diào)整的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Tomcat 日志切割(logrotate)詳細(xì)介紹
這篇文章主要介紹了Tomcat 日志切割(logrotate)詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-12-12Tomcat服務(wù)器的啟動(dòng)及啟動(dòng)失敗可能的原因分析
這篇文章主要介紹了Tomcat服務(wù)器的啟動(dòng)及啟動(dòng)失敗可能的原因分析,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Tomcat無法映射到activiti-app導(dǎo)致activiti無法啟動(dòng)頁面的解決方法
這篇文章主要介紹了Tomcat無法映射到activiti-app導(dǎo)致activiti無法啟動(dòng)頁面的解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-11-11詳解關(guān)于tomcat切割catalina.out日志的三種方式
這篇文章主要介紹了詳解關(guān)于tomcat切割catalina.out日志的三種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02tomcat雙擊startup.bat一閃而過(閃退)的問題解決
本文主要介紹了tomcat雙擊startup.bat一閃而過(閃退)的問題解決,可能是tomcat找不到你的jdk環(huán)境配置路徑,下面就來介紹一下解決方法,感興趣的可以了解一下2024-05-05