手動(dòng)部署Java Web環(huán)境(Tomcat)
Java Web是一種使用Java語(yǔ)言開發(fā)動(dòng)態(tài)Web應(yīng)用程序的技術(shù)棧,它利用Java平臺(tái)的強(qiáng)大功能,結(jié)合各種技術(shù)和框架,使得開發(fā)者能夠創(chuàng)建復(fù)雜、高性能、可跨平臺(tái)部署的Web應(yīng)用。在Java Web開發(fā)中,Tomcat是常用的開源Web服務(wù)器,用于部署和運(yùn)行Java Web應(yīng)用程序。本文介紹如何在ECS實(shí)例中部署Java Web環(huán)境。
準(zhǔn)備工作
部署Java Web環(huán)境時(shí),已有ECS實(shí)例必須滿足以下條件:
實(shí)例已分配固定公網(wǎng)IP地址或綁定彈性公網(wǎng)IP(EIP)。具體操作,請(qǐng)參見彈性公網(wǎng)IP。
若您的實(shí)例為L(zhǎng)inux系統(tǒng),實(shí)例安全組的入方向規(guī)則需放行22、8080端口。
若您的實(shí)例為Windows系統(tǒng),實(shí)例安全組的入方向規(guī)則需放行3389、8080端口。
具體操作,請(qǐng)參見添加安全組規(guī)則。
若您的實(shí)例為L(zhǎng)inux系統(tǒng),需要您關(guān)閉實(shí)例的系統(tǒng)防火墻、SELinux。具體操作,請(qǐng)參見開啟或關(guān)閉Linux系統(tǒng)防火墻、開啟或關(guān)閉SELinux。
若您的實(shí)例為Windows系統(tǒng),需要您關(guān)閉實(shí)例的系統(tǒng)防火墻。具體操作,請(qǐng)參見管理Windows系統(tǒng)防火墻。
實(shí)例已部署Java環(huán)境。具體操作,請(qǐng)參見部署Java環(huán)境。
操作方案
您可以根據(jù)實(shí)例的系統(tǒng),選擇合適的方案。
Linux
本文以安裝Apache Tomcat 9.0.91為例。若您安裝其他版本,或使用其他目錄,您需要根據(jù)實(shí)際版本及目錄替換命令中的版本及路徑。
登錄Linux服務(wù)器。具體操作,請(qǐng)參見連接實(shí)例。
運(yùn)行以下命令,下載并解壓Tomcat 9安裝包。
說明Tomcat下載地址官網(wǎng)會(huì)持續(xù)更新。如果下方下載地址失效,請(qǐng)您直接訪問Tomcat官網(wǎng)獲取。
若您需要安裝其他版本,可以訪問Tomcat官網(wǎng)獲取下載地址,替換命令中的URL。
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.91/bin/apache-tomcat-9.0.91.tar.gz --no-check-certificate tar -zxvf apache-tomcat-9.0.91.tar.gz
運(yùn)行以下命令,移動(dòng)Tomcat所在目錄。
sudo mv apache-tomcat-9.0.91 /usr/local/tomcat/
(可選)配置server.xml文件。
若您需要修改Tomcat的相關(guān)配置,可以參考如下操作。
運(yùn)行以下命令,打開
/usr/local/tomcat/conf/server.xml
文件。vim /usr/local/tomcat/conf/server.xml
按
i
鍵,進(jìn)入編輯模式。本示例使用Tomcat的默認(rèn)配置。您也可以根據(jù)需求,修改Tomcat的相關(guān)配置。例如:Tomcat默認(rèn)使用8080端口,如果您需要修改端口號(hào),可以修改
port
的屬性值。說明修改端口后,您需要在實(shí)例的安全組中放行修改后的端口,具體操作,請(qǐng)參見添加安全組規(guī)則。
Tomcat默認(rèn)的網(wǎng)站根目錄為
webapps
,當(dāng)您將一個(gè)Web應(yīng)用程序(例如一個(gè)WAR文件或一個(gè)包含WEB-INF目錄的文件夾)放到webapps
目錄下時(shí),Tomcat會(huì)自動(dòng)部署這個(gè)應(yīng)用。如果您需要修改Tomcat的網(wǎng)站根目錄,可以修改appBase
的屬性值。
修改完成后,按Esc鍵,輸入
:wq
并回車以保存并關(guān)閉文件。
(可選)設(shè)置JVM內(nèi)存參數(shù)。
若您需要根據(jù)需求設(shè)置Tomcat的JVM內(nèi)存參數(shù),以優(yōu)化Tomcat的性能、穩(wěn)定性等,可以參考如下操作。
運(yùn)行以下命令,創(chuàng)建并打開
/usr/local/tomcat/bin/setenv.sh
文件。vim /usr/local/tomcat/bin/setenv.sh
按
i
鍵,添加以下內(nèi)容。指定
JAVA_OPTS
參數(shù),用于設(shè)置JVM的內(nèi)存信息以及編碼格式。本示例將編碼格式設(shè)置為UTF-8。說明您可以根據(jù)需求調(diào)整以下內(nèi)容,以更好地設(shè)置JVM內(nèi)存參數(shù)。
JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms512m -Xmx512m -Dfile.encoding=UTF-8'
按
Esc
鍵,輸入:wq
,按Enter
鍵保存并關(guān)閉文件。為文件添加可執(zhí)行權(quán)限。
sudo chmod +x /usr/local/tomcat/bin/setenv.sh
設(shè)置Tomcat自啟動(dòng)腳本。
運(yùn)行以下命令,下載Tomcat自啟動(dòng)腳本文件。
重要該腳本來源于社區(qū),僅供參考。阿里云對(duì)其可靠性以及操作可能帶來的潛在影響,不做任何暗示或其他形式的承諾。如果您運(yùn)行wget命令下載失敗,您可以通過瀏覽器訪問
https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
直接獲取腳本內(nèi)容。wget https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
運(yùn)行以下命令,移動(dòng)并重命名
Tomcat-init
。sudo mv Tomcat-init /etc/init.d/tomcat
運(yùn)行以下命令,為
/etc/init.d/tomcat
添加可執(zhí)行權(quán)限。chmod +x /etc/init.d/tomcat
獲取安裝的JDK路徑。運(yùn)行以下命令,獲取Java二進(jìn)制文件的真實(shí)路徑,其父目錄則為安裝的JDK路徑。
readlink -f $(which java)
說明例如執(zhí)行命令后返回
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64/jre/bin/java
,則安裝的JDK路徑為/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64
。運(yùn)行以下命令,設(shè)置啟動(dòng)腳本
JAVA_HOME
。重要腳本中JDK的路徑信息必須與您安裝的JDK路徑保持一致,否則Tomcat會(huì)啟動(dòng)失敗。
sudo sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.432.b06-2.0.2.1.al8.x86_64@' /etc/init.d/tomcat
依次運(yùn)行以下命令,設(shè)置Tomcat開機(jī)自動(dòng)啟動(dòng),并啟動(dòng)Tomcat。
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat
啟動(dòng)后,您可以執(zhí)行
sudo systemctl status tomcat
查看Tomcat當(dāng)前狀態(tài),返回active(running)
則說明Tomcat啟動(dòng)成功。驗(yàn)證環(huán)境配置。
在本地瀏覽器地址欄中,輸入
http://公網(wǎng)IP:8080
,成功進(jìn)入Tomcat歡迎頁(yè),則說明環(huán)境配置成功。說明若輸入
http://公網(wǎng)IP:8080
后無(wú)法顯示下述頁(yè)面,請(qǐng)檢查安全組,確保入方向已放行8080端口。若您修改過Tomcat的端口,請(qǐng)將8080替換為修改后的端口,并檢查安全組是否放行該端口。
若您想上傳本地項(xiàng)目進(jìn)行測(cè)試,可以將WAR包上傳至Tomcat的網(wǎng)站根目錄(本文中默認(rèn)為
/usr/local/tomcat/webapps
),并在瀏覽器輸入http://公網(wǎng)IP:8080/包名
訪問項(xiàng)目。具體操作,請(qǐng)參見上傳或下載文件(Linux)。
Windows
本文以安裝Apache Tomcat 9.0.97為例。
登錄Windows服務(wù)器。具體操作,請(qǐng)參見連接實(shí)例。
下載Tomcat。
訪問Tomcat官網(wǎng),選擇相應(yīng)的版本,下載安裝包。
解壓Tomcat壓縮包。
將下載的壓縮包解壓到您希望安裝Tomcat的位置。本文以
C:\Program Files
為例。獲取Tomcat安裝目錄。
解壓后,您可以進(jìn)入解壓后的目錄,在地址欄獲取到Tomcat的安裝目錄。
配置環(huán)境變量。
右鍵單擊此電腦,選擇屬性。
在關(guān)于頁(yè)滾動(dòng)至最下方,單擊高級(jí)系統(tǒng)設(shè)置。
單擊環(huán)境變量。
在系統(tǒng)變量區(qū)域,單擊新建,創(chuàng)建系統(tǒng)變量,完成后單擊確定。變量名為
CATALINA_HOME
,變量值為Tomcat安裝目錄,例如C:\Program Files\apache-tomcat-9.0.97
。在系統(tǒng)變量中找到
Path
變量,選中并單擊編輯。在編輯環(huán)境變量中單擊新建,添加
%CATALINA_HOME%\bin
。單擊兩次確定,保存環(huán)境變量配置。
啟動(dòng)Tomcat。
進(jìn)入Tomcat安裝目錄下的bin文件夾。
在路徑欄輸入
cmd
,按下回車,打開命令提示符。執(zhí)行命令
startup.bat
啟動(dòng)Tomcat,命令執(zhí)行后,默認(rèn)會(huì)打開一個(gè)新的命令提示符窗口,以顯示Tomcat的啟動(dòng)日志信息,請(qǐng)勿關(guān)閉此窗口。
驗(yàn)證Tomcat。
在本地瀏覽器輸入
http://公網(wǎng)IP:8080
,進(jìn)入Tomcat歡迎頁(yè),則說明Tomcat部署成功。說明若輸入
http://公網(wǎng)IP:8080
后無(wú)法顯示下述頁(yè)面,請(qǐng)您排查以下問題:請(qǐng)檢查安全組,確保入方向已放行8080端口。
請(qǐng)確認(rèn)執(zhí)行
startup.bat
命令啟動(dòng)Tomcat后,默認(rèn)打開的命令提示符窗口是否被關(guān)閉,若窗口已關(guān)閉,請(qǐng)您重新執(zhí)行startup.bat
命令開啟此窗口。
若您想上傳本地項(xiàng)目進(jìn)行測(cè)試,可以將WAR包上傳至Tomcat的網(wǎng)站根目錄(本文中默認(rèn)為
C:\Program Files\apache-tomcat-9.0.97\webapps
),并在瀏覽器輸入http://公網(wǎng)IP:8080/包名
訪問項(xiàng)目。具體操作,請(qǐng)參見上傳或下載文件(Linux)。
后續(xù)操作
部署Java Web環(huán)境后,您可以考慮在服務(wù)器上配置網(wǎng)站,為ECS實(shí)例的公網(wǎng)IP地址綁定域名等。具體操作,請(qǐng)參見搭建網(wǎng)站。
您可以選擇合適的開發(fā)工具進(jìn)行Web開發(fā),如果您的應(yīng)用需要使用數(shù)據(jù)庫(kù)存儲(chǔ)應(yīng)用數(shù)據(jù),可以在Web項(xiàng)目的相關(guān)配置文件(例如Properties文件)中添加數(shù)據(jù)庫(kù)配置,連接至數(shù)據(jù)庫(kù)。開發(fā)完成后,您可以將Java Web應(yīng)用程序部署到Tomcat中(例如部署到Tomcat安裝目錄下的webapps目錄),部署和運(yùn)行后,通過Web訪問您的應(yīng)用。具體操作,請(qǐng)參見Tomcat 9 應(yīng)用程序部署指南。
說明如果您使用的是其他版本的Tomcat,只需將URL中的版本號(hào)替換為相應(yīng)版本即可。
若您需要上傳本地文件到ECS,具體操作,請(qǐng)參見上傳或下載文件(Linux)。
若您需要使用數(shù)據(jù)庫(kù)存儲(chǔ)和管理Web應(yīng)用中的數(shù)據(jù),可以使用云數(shù)據(jù)庫(kù)RDS MySQL,或在實(shí)例中部署MySQL數(shù)據(jù)庫(kù),具體操作,請(qǐng)參見部署數(shù)據(jù)庫(kù)。
您可以考慮使用負(fù)載均衡SLB提高網(wǎng)站的可用性和性能。詳細(xì)信息,請(qǐng)參見快速入門。
您可以直接使用ECS的構(gòu)建與部署功能,關(guān)聯(lián)代碼倉(cāng)庫(kù)并進(jìn)行構(gòu)建部署,詳情請(qǐng)參見部署應(yīng)用。
您也可以考慮通過云效建立CI/CD流程來持續(xù)集成,提高效率。詳細(xì)信息,請(qǐng)參見什么是云效。