天天看点

【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