RedHat/CentOS8【Tomcat】部署 JavaWeb 應(yīng)用

Tomcat 是一個(gè)開(kāi)源的(遵循 Apache 2.0 協(xié)議)輕量級(jí) Web 應(yīng)用服務(wù)器中間件铁孵,在中小型系統(tǒng)和并發(fā)量小的場(chǎng)景中普遍使用确沸,是開(kāi)發(fā)和調(diào)試 Servlet 和 JSP 程序的首選中間件西篓。

本方案基于CentOS8系統(tǒng)設(shè)計(jì)蹲盘,建議在RedHat/CentOS系統(tǒng)中使用揖铜。


1.安裝 Tomcat 中間件

注意:安裝 Tomcat 前喊熟,應(yīng)確保系統(tǒng)已經(jīng)正確安裝配置 JDK 柏肪。如何安裝配置 JDK,請(qǐng)閱讀文件《RedHat/CentOS8 安裝配置 OracleJDK 8 和 OpenJDK 1.8》【http://www.reibang.com/p/208cc5b8688b

第一步芥牌,打開(kāi) Tomcat 官方網(wǎng)站下載頁(yè)面【https://tomcat.apache.org/download-90.cgi】烦味,下載 Tomcat 的編譯程序 tar 包到用戶主目錄中。

Tomcat 下載頁(yè)面

第二步壁拉,解壓縮編譯程序 tar 包到"/usr/local"目錄中谬俄。

[centos@host ~]$ sudo tar zxvf apache-tomcat-9.0.34.tar.gz -C /usr/local
[centos@host ~]$ sudo mv /usr/local/apache-tomcat-9.0.34 /usr/local/tomcat-9.0.34

第三步,創(chuàng)建 Tomcat 管理用戶和組弃理,并設(shè)置為程序安裝目錄的擁有者溃论。

[centos@host  ~ ]$ sudo id tomcat
id: “tomcat”:無(wú)此用戶
[centos@host  ~ ]$ sudo groupadd tomcat
[centos@host  ~ ]$ sudo useradd -g tomcat -s /bin/false tomcat
[centos@host  ~ ]$ sudo chown -R tomcat:tomcat /usr/local/tomcat-9.0.34

第四步,創(chuàng)建 Tomcat 開(kāi)機(jī)啟動(dòng)服務(wù)配置文件痘昌。

使用文本編輯器打開(kāi)配置文件:

[centos@host ~]$ sudo gedit /usr/lib/systemd/system/tomcat.service

修改或驗(yàn)證文件中的以下參數(shù)并保存:

[Unit]
Description=Tomcat Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
User=tomcat
Group=tomcat

Environment=JAVA_HOME=/usr/local/jdk1.8.0_261
Environment=JRE_HOME=/usr/local/jdk1.8.0_261/jre

ExecStart=/usr/local/tomcat-9.0.34/bin/startup.sh
ExecStop=/usr/local/tomcat-9.0.34/bin/shutdown.sh
ExecReload=/usr/local/tomcat-9.0.34/bin/shutdown.sh

第五步钥勋,啟動(dòng) Tomcat 服務(wù)炬转,并設(shè)置為開(kāi)機(jī)自動(dòng)啟動(dòng)。

[centos@host ~]$ sudo systemctl daemon-reload
[centos@host ~]$ sudo systemctl enable tomcat.service
[centos@host ~]$ sudo systemctl start tomcat.service

第六步算灸,設(shè)置防火墻端口(CentOS8默認(rèn)安裝firewall防火墻)扼劈,允許"8080"端口(Tomcat 默認(rèn)端口)訪問(wèn)服務(wù)器。

[centos@host ~]$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
[centos@host ~]$ sudo firewall-cmd --reload

第七步菲驴,驗(yàn)證安裝荐吵,在瀏覽器中輸入"http://127.0.0.1:8080"來(lái)訪問(wèn) Tomcat 默認(rèn)主頁(yè)。

Tomcat 驗(yàn)證頁(yè)面


2.Tomcat 主配置文件詳解

Tomcat 的主配置文件是 "/程序安裝目錄/conf/server.xml"赊瞬,該文件定義了 Tomcat 的監(jiān)聽(tīng)服務(wù)先煎,站點(diǎn),虛擬目錄信息巧涧。

Tomcat 的主配置文件結(jié)構(gòu)如下:

<Server>
    <Listener />  
    <GlobaNamingResources></GlobaNamingResources>
    <Service>  
        <Connector />  
        <Engine>  
            <Realm />  
            <host>  
                <Context /> 
                <Value />  
             </host>  
        </Engine>  
    </Service>  
</Server>  
  • Server(服務(wù)器)節(jié)點(diǎn):Server 定義了一個(gè)提供完整的JVM的獨(dú)立組件薯蝎,服務(wù)器在指定的端口上監(jiān)聽(tīng)shutdown命令。 Server 代表根容器褒侧,它是唯一的良风,且不能做為任何元素的子元素。屬性如下:
    -- port:指定監(jiān)聽(tīng) shutdown 命令端口闷供,終止 Tomcat 時(shí)需要在服務(wù)器上發(fā)出 shutdown 命令烟央,必須設(shè)置。
    -- shutdown:指定終止 Tomcat 時(shí)歪脏,發(fā)給服務(wù)器的 shutdown 監(jiān)聽(tīng)端口的字符串疑俭,必須設(shè)置。

  • Service(服務(wù))節(jié)點(diǎn):Service 定義了一個(gè)或多個(gè) Connectors 共享一個(gè) Engine 的組合婿失。 Server 可以包含一個(gè)或多個(gè) Service 钞艇。
    -- name:指定 Service 的名字。

  • Connector(連接器)節(jié)點(diǎn): Connector 定義請(qǐng)求被接收和應(yīng)答所需要的端口豪硅。每個(gè) Connector 通過(guò)共享的 Engine 處理請(qǐng)求哩照。
    -- port:指定服務(wù)器端創(chuàng)建的端口號(hào),這個(gè)端口監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求懒浮。
    -- protocol:指定 HTTP 協(xié)議飘弧。
    -- redirectPort:指定服務(wù)器正在處理 HTTP 請(qǐng)求時(shí)收到了一個(gè) SSL 傳輸請(qǐng)求后重定向的端口號(hào)。
    -- connectionTimeout:指定超時(shí)的時(shí)間數(shù)(以毫秒為單位)砚著。

  • Engine(引擎)節(jié)點(diǎn):Engine 定義處理每個(gè)請(qǐng)求的入口點(diǎn)次伶。每個(gè) Service 只能有一個(gè) Engine,處理所有 Connector 接收到的客戶請(qǐng)求稽穆。每個(gè) Engine 可以包含一個(gè)或多個(gè) Host 冠王。
    -- name:指定 Engine 的名字。
    -- defaultHost:指定默認(rèn) Host 的名字舌镶。

  • Host(主機(jī))節(jié)點(diǎn):Host 定義虛擬主機(jī)柱彻,它包含了一個(gè)或多個(gè) Web 應(yīng)用豪娜。
    -- name:指定 Host 的名字。
    -- appBase:應(yīng)用程序基本目錄绒疗,即存放應(yīng)用程序(WAR 文件)的目錄侵歇。
    -- unpackWARs:指定為"true",則自動(dòng)將WAR文件解壓吓蘑;指定為"false",則不解壓直接從WAR文件中運(yùn)行應(yīng)用程序坟冲。
    -- autoDeploy:指定為"true"磨镶,在 Tomcat 服務(wù)處于運(yùn)行狀態(tài)時(shí),能夠自動(dòng)監(jiān)測(cè) appBase 下的 Web 應(yīng)用健提,如果發(fā)現(xiàn)新的 Web 應(yīng)用會(huì)自運(yùn)發(fā)布這個(gè) Web 應(yīng)用琳猫;指定為"false",則不自動(dòng)檢測(cè)私痹。

  • Context(應(yīng)用程序)節(jié)點(diǎn):Context 定義單個(gè) Web 應(yīng)用程序脐嫂,每個(gè) Host 可以包含一個(gè)或多個(gè) Context 。
    -- docBase:指定應(yīng)用程序(WAR 文件)的物理目錄紊遵。
    -- path:指定應(yīng)用程序的虛擬目錄账千。 URL 請(qǐng)求的形式是"http://IP:PORT/虛擬目錄"。
    -- debug:指定輸出的調(diào)試信息暗膜,允許設(shè)置"0-9"匀奏,"0"表示提供最少的信息,"9"表示提供最多的信息学搜。
    -- reloadable:指定為"true"娃善,則 Tomcat 會(huì)自動(dòng)檢測(cè)應(yīng)用程序的"/WEB-INF/lib"和 "/WEB-INF/classes"目錄的更新,自動(dòng)裝載新的應(yīng)用程序瑞佩;指定為"false"聚磺,則不會(huì)。

  • Value(日志)節(jié)點(diǎn):定義調(diào)試和錯(cuò)誤信息炬丸。
    -- className:指定實(shí)現(xiàn)類瘫寝,默認(rèn)是"org.apache.catalina.valves.AccessLogValve",用于記錄應(yīng)用程序的訪問(wèn)信息御雕。
    -- directory:指定日志文件存放的位置矢沿。
    -- prefix:指定日志文件名的前綴。
    -- suffix:指定日志文件名的后綴酸纲。
    -- pattern:指定日志文件記錄的內(nèi)容和格式捣鲸,通過(guò)通配符腳本表示。

  • Realm(認(rèn)證)節(jié)點(diǎn):Realm 定義存放用戶名闽坡,密碼及角色的數(shù)據(jù)庫(kù)栽惶。
    -- className:指定實(shí)現(xiàn)類愁溜。


3.使用 Ecplise 發(fā)布 WAR 包

第一步,在需要發(fā)布的項(xiàng)目上右擊外厂,選擇"Export..."冕象。

第二步,選擇"Web"下的"WAR file"選項(xiàng)汁蝶,點(diǎn)擊"Next>"按鈕渐扮。

第三步,點(diǎn)擊"Browse"按鈕掖棉,設(shè)置 WAR 文件存放位置墓律。

第四步,設(shè)置 WAR 包文件部署的服務(wù)器運(yùn)行環(huán)境幔亥,如:Tomcat耻讽;設(shè)置是否將源文件一并導(dǎo)出到 WAR 文件中(不選擇則只導(dǎo)出編譯文件,不建議選擇)帕棉,點(diǎn)擊“Finish”按鈕等待導(dǎo)出進(jìn)度完成针肥。


4.在 Tomcat 中部署 WAR 包

方案一:在默認(rèn)站點(diǎn)中的應(yīng)用程序目錄中部署。(最簡(jiǎn)部署)

將已發(fā)布的 WAR 文件拷貝到"/程序安裝目錄/webapps"目錄中即可香伴,Tomcat 會(huì)自動(dòng)檢測(cè)部署慰枕,用戶通過(guò)"http://ip:port/WAR文件名"即可訪問(wèn),默認(rèn)的端口是8080瞒窒。

方案二:在默認(rèn)站點(diǎn)中建立虛擬目錄的方式部署捺僻。

① 修改主配置文件 "/程序安裝目錄/conf/server.xml",在默認(rèn) Host(站點(diǎn))中增加 Context(應(yīng)用程序)的定義崇裁。

使用文本編輯器打開(kāi)配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service>  
        <Engine>
           <Host name="localhost" appBase="webapps" autoDeploy="true">
              <Context path="/virtualdirectory" docBase="physicaldirectory" reloadable="true" debug="0" />
           </Host>
        </Engine>  
    </Service>  
</Server>

② 在"/程序安裝目錄/webapps"中創(chuàng)建"physicaldirectory"目錄匕坯。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/webapps/physicaldirectory

③ 并將已發(fā)布的 WAR 文件拷貝到該目錄中,Tomcat 會(huì)自動(dòng)檢測(cè)部署拔稳,用戶通過(guò)"http://ip:port/virtualdirectory/WAR文件名"即可訪問(wèn)葛峻,默認(rèn)的端口是8080。

方案三:建立新的站點(diǎn)部署(主機(jī)頭部署)巴比。

① 修改主配置文件 "/程序安裝目錄/conf/server.xml"术奖,在默認(rèn)的 Service (服務(wù))中增加自定義 Host 的定義。

使用文本編輯器打開(kāi)配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service>  
        <Engine>
           <Host name="www.host.com" appBase="hostapps" autoDeploy="true">
               <Valve className="org.apache.catalina.valves.AccessLogValve" directory="hostlogs"
                   prefix="localhost_access_log" suffix=".txt"
                   pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
         </Engine>  
    </Service>  
</Server>

② 在"/程序安裝目錄"中創(chuàng)建"hostapps"和"hostlogs"目錄轻绞。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/hostapps
[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/hostlogs

③ 將已發(fā)布的 WAR 文件拷貝到該目錄中采记,Tomcat 會(huì)自動(dòng)檢測(cè)部署,用戶通過(guò)"http://www.host.com:port/WAR文件名"即可訪問(wèn)政勃,默認(rèn)的端口是8080唧龄。

④ 在 DNS 服務(wù)器上建立域名"www.host.com"與服務(wù)器 IP 地址的解析記錄。**

方案四:建立新的監(jiān)聽(tīng)端口部署奸远。

① 修改主配置文件 "/程序安裝目錄/conf/server.xml"既棺,增加新的 Service(服務(wù))的定義讽挟。

使用文本編輯器打開(kāi)配置文件:

[centos@host ~]$ sudo gedit /usr/local/tomcat-9.0.34/conf/server.xml

在文件中的增加以下配置并保存:

<Server>
    <Service name="Catalina_New">
        <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
        <Engine name="Catalina" defaultHost="localhost">
            <Host name="localhost" appBase="webapps_new" autoDeploy="true">
                <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs_new"
                    prefix="localhost_access_log" suffix=".txt"
                    pattern="%h %l %u %t &quot;%r&quot; %s %b" />
            </Host>
         </Engine>
    </Service>
</Server>

② 在"/程序安裝目錄"中創(chuàng)建"webapps_new"和"logs_new"目錄。

[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/webapps_new
[centos@host ~]$ sudo -u tomcat mkdir /usr/local/tomcat-9.0.34/logs_new

重啟啟動(dòng) Tomcat 后丸冕,會(huì)監(jiān)聽(tīng)8081端口耽梅。在新的 Service(服務(wù))中,繼續(xù)選擇方案一胖烛、方案二眼姐、方案三的方式部署站點(diǎn)和應(yīng)用程序,但是在訪問(wèn)時(shí)應(yīng)使用新的端口號(hào)洪己。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末妥凳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子答捕,更是在濱河造成了極大的恐慌,老刑警劉巖屑那,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拱镐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡持际,警方通過(guò)查閱死者的電腦和手機(jī)沃琅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜘欲,“玉大人益眉,你說(shuō)我怎么就攤上這事±逊荩” “怎么了郭脂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)澈歉。 經(jīng)常有香客問(wèn)我展鸡,道長(zhǎng),這世上最難降的妖魔是什么埃难? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任莹弊,我火速辦了婚禮,結(jié)果婚禮上涡尘,老公的妹妹穿的比我還像新娘忍弛。我一直安慰自己,他們只是感情好考抄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布细疚。 她就那樣靜靜地躺著,像睡著了一般座泳。 火紅的嫁衣襯著肌膚如雪惠昔。 梳的紋絲不亂的頭發(fā)上幕与,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音镇防,去河邊找鬼啦鸣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛来氧,可吹牛的內(nèi)容都是我干的诫给。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼啦扬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼中狂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起扑毡,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胃榕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后瞄摊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體勋又,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年换帜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了楔壤。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惯驼,死狀恐怖蹲嚣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祟牲,我是刑警寧澤隙畜,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站疲眷,受9級(jí)特大地震影響禾蚕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狂丝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一换淆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧几颜,春花似錦倍试、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春躁愿,著一層夾襖步出監(jiān)牢的瞬間叛本,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工彤钟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留来候,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓逸雹,卻偏偏與公主長(zhǎng)得像营搅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梆砸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354