天天看點

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

【簡介】

我們都知道,Internet上供外界通路的Web資源可分為:靜态web資源:指web頁面中供人們浏覽的資料始終是不變。動态web資源:指web頁面中供人們浏覽的資料是由程式産生的,不同時間點通路web頁面看到的内容各不相同。靜态web資源開發技術:HTML、CSS。動态web資源開發技術:JavaScript、JSP/Servlet、ASP、PHP等。在Java中,動态web資源開發技術統稱為Java Web,本文主要的内容主要介紹如何開發人員如何在Azure Virtual machines中手動部署Java Web項目

【前期文章】

【Microsoft Azure 的1024種玩法】一.一分鐘快速上手搭建寶塔管理面闆

【Microsoft Azure 的1024種玩法】二.基于Azure雲平台的安全攻防靶場系統建構

【Microsoft Azure 的1024種玩法】三.基于Azure雲平台建構Discuz論壇

【Microsoft Azure 的1024種玩法】四. 利用Azure Virtual machines 打造個人專屬雲盤,速度吊打某雲盤

【Microsoft Azure 的1024種玩法】五.基于Azure Cloud Shell 一站式建立Linux VM

【Microsoft Azure 的1024種玩法】六.使用Azure Cloud Shell對Linux VirtualMachines 進行生命周期管理

【Microsoft Azure 的1024種玩法】七.Azure雲端搭建部署屬于自己的維基百科

【Microsoft Azure 的1024種玩法】八. 基于Azure雲端輕松打造一款好用的私有雲筆記

【Microsoft Azure 的1024種玩法】九. Microsoft Azure雲端輕松建構部署PostgreSQL資料庫

【Microsoft Azure 的1024種玩法】十. 基于Azure App Service 快速上手部署 ASP.NET Web 應用

【Microsoft Azure 的1024種玩法】十一.手動對Azure磁盤進行IOPS性能壓力測試

【Microsoft Azure 的1024種玩法】十二. 使用Auzre cloud 安裝搭建docker+vulhub靶場

【Microsoft Azure 的1024種玩法】十三.Azure cloud|帶你快速搭建DVWA靶場漏洞環境

【Microsoft Azure 的1024種玩法】十四.Azure DNS 線上域名委托解析操作指南

【Microsoft Azure 的1024種玩法】十五.通過Web浏覽器對Auzre VM 伺服器運維管理

【Microsoft Azure 的1024種玩法】十六.Cobaltstrike内網滲透工具在Azure Cloud中的部署使用

【Microsoft Azure 的1024種玩法】 十七.在Microsoft Azure上動手搭建專屬私有檔案同步服務]

【Microsoft Azure 的1024種玩法】 十八.快速建立Microsoft Azure SQL資料庫初體驗

【Microsoft Azure 的1024種玩法】 十九.使用Azure備份服務對虛拟機快速備份

【Microsoft Azure 的1024種玩法】 二十.Azure Multi-Factor Authentication多因素驗證最佳實戰

【Microsoft Azure 的1024種玩法】 二十一.利用Azure Blob Service 快速實作靜态網站托管

【Microsoft Azure 的1024種玩法】 二十二.中國區Azure Cloud 多重身份驗證最佳實踐

【Microsoft Azure 的1024種玩法】 二十三.快速上手Azure Content Delivery Network 内容分發網絡

【Microsoft Azure 的1024種玩法】二十四.通過Azure Front Door 的 Web 應用程式防火牆來對 OWASP TOP 10 威脅進行防禦

【Microsoft Azure 的1024種玩法】 二十五.使用Azure CDN對Azure Blob 靜态托管站點進行加速

【Microsoft Azure 的1024種玩法】二十六. 在Azure VM中手動部署Windows Admin Center管理平台

【Microsoft Azure 的1024種玩法】二十七. Azure Virtual Desktop虛拟桌面之快速建立配置(一)

【Microsoft Azure 的1024種玩法】二十八. 基于Azure Cloud搭建IPS入侵防禦系統實作安全流量實時分析

【Microsoft Azure 的1024種玩法】二十九.基于Azure VM快速實作網絡入侵檢測 (IDS) 及網絡安全監視 (NSM)

【Microsoft Azure 的1024種玩法】三十. 使用Azure Data Studio之快速上手連接配接管理Azure SQL 資料庫(一)

【Microsoft Azure 的1024種玩法】三十一.使用Azure Logic App 建立基于計劃定期執行郵件發送的自動化工作流

【Microsoft Azure 的1024種玩法】三十二. 利用 AzCopy來對Azure Blob Storage中的資料進行複制遷移

【Microsoft Azure 的1024種玩法】三十三.十分鐘快速部署 Azure Kubernetes Service 群集

【Microsoft Azure 的1024種玩法】三十四.将本地資料檔案快速遷移到Azure Blob雲存儲最佳實踐

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

【操作步驟】

一.建立Azure Virtual Machines

1.1 建立資源組

①Azure 資源組是在其中部署和管理 Azure 資源的邏輯容器。 必須在建立虛拟機前建立資源組,通過如下指令執行建立名為myResourceGroupVM的資源組

az group create --name myResourceGroupVM --location eastus

②執行結果如下圖所示:

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

1.2.建立Linux虛拟機

①使用 az vm create 指令建立虛拟機,在建立虛拟機時,可使用多個選項來調配适合自己業務場景的虛拟機配置,具體執行指令如下

az vm create \
    --resource-group myResourceGroupVM \
    --name myVM \
    --image Centos8.5.2111 \
    --admin-username why \
    --generate-ssh-keys
           

注:執行指令完畢以後CLI指令行會發送指令到Auzre背景進行調用VM的虛拟資源池,在調用建立的過程可能需要幾分鐘的時間,當建立完畢以後,Azure CLI會回顯輸出如下已建立的資訊

{
"fqdns": "",
"id": "/subscriptions/7fe09b4b-02fc-47c2-9d25-905e0da35c1a/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "East Asia",
"macAddress": "00-22-48-26-9E-05",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "20.239.204.44",
"resourceGroup": "myResourceGroupVM",
"zones": ""
}
           

③我們通路Azure門戶找到VM虛拟機管理頁面,點選名稱進去檢視詳情

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

④在此界面中就可以看到我們利用Azure CLI 指令建立出的VM虛拟機器

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

二.遠端連接配接Azure Virtual Machines

2.1 利用連接配接VM

① 我們通過控制台或者Azure Cloud Shell傳回的資訊擷取到了遠端公網IP位址

ssh [email protected]

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

三.前期系統配置

3.1.關閉selinux

①使用 getenforce 指令檢視selinux狀态

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

②通過編輯selinux配置檔案将SELINUX=enforcing 注釋掉,在下面添加SELINUX=disabled

vi /etc/selinux/config 
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

3.2 關閉防火牆

①使用如下指令檢視防火牆狀态

systemctl status firewalld
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

四.下載下傳安裝Tomcat和jdk安裝包

4.1下載下傳安裝 配置jdk安裝包

①通過下述連結下載下傳安裝 jdk安裝包

wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.rpm
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

②建立目錄

sudo mkdir /usr/java
           

③解壓jdk到目标檔案夾

sudo tar xzf jdk-18_linux-x64_bin.tar.gz  -C  /usr/java
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

④配置環境變量,在/etc/profile下添加以下内容

export JAVA_HOME=/usr/java/jdk-18.0.1.1
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

⑤加載環境變量

source /etc/profile
           

⑥驗證java是否安裝成功

Java -version
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

4.2下載下傳安裝配置 Tomcat

①解壓apache-tomcat-8.5.78.tar.gz

tar xzf apache-tomcat-8.5.78.tar.gz
           

②重命名解壓後的檔案夾

mv apache-tomcat-8.5.78 /usr/local/tomcat
           

③設定檔案所屬使用者

chown -R www.www /usr/local/tomcat/
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

④l切換到存放配置檔案的檔案夾,将原來的server.xml重命名為server.xml_bk

cd /usr/local/tomcat/conf/
mv server.xml server.xml_bk
           

⑤使用vi建立server.xml,并添加如下内容

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8006" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<Listener className="org.apache.catalina.core.AprLifecycleListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
 type="org.apache.catalina.UserDatabase"
 description="User database that can be updated and saved"
 factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
 pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8080"
 protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443"
 maxThreads="1000"
 minSpareThreads="20"
 acceptCount="1000"
 maxHttpHeaderSize="65536"
 debug="0"
 disableUploadTimeout="true"
 useBodyEncodingForURI="true"
 enableLookups="false"
 URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="/data/wwwroot/default" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/data/wwwroot/default" debug="0" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>
           

⑥設定JVM記憶體參數

Vi /usr/local/tomcat/bin/setenv.sh
           

⑦添加以下内容 指定JAVA_OPTS參數,用于設定JVM的記憶體資訊以及編碼格式

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

⑧設定tomcat自啟動腳本

Wget https://raw.githubusercontent.com/oneinstack/oneinstack/master/init.d/Tomcat-init
           

⑨重命名該腳本

mv Tomcat-init /etc/init.d/tomcat
           

⑩添加執行權限

chmod +x /etc/init.d/tomcat
           

⑪設定啟動腳本指令

sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME= /usr/java/jdk-18.0.1.1 @' /etc/init.d/tomcat   
           

⑫設定tomcat自啟動

chkconfig --add tomcat
chkconfig tomcat on
           

五.啟動Tomcat并驗證通路

5.1 通過指令啟動Tomcat

Service tomcat start
           
【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web

5.2 通路Azure Virtual Machines的公網IP進行驗證

通路Azure Virtual Machines的公網IP進行驗證,頁面可以正常通路,證明我們搭建的Tomcat服務正常

【Microsoft Azure 的1024種玩法】三十五.在Azure Virtual machines中手動部署Java Web