个人用户如何手动在ECS实例上部署Java web项目?

简介: 本篇文档介绍如何手动在ECS实例上部署Java web项目。适用于刚开始使用阿里云进行建站的个人用户。

本篇文档介绍如何手动在ECS实例上部署Java web项目。适用于刚开始使用阿里云进行建站的个人用户。

项目配置

本篇教程在示例步骤中使用了以下版本的软件。操作时,请您以实际软件版本为准。

  • 操作系统:CentOS 7.4

  • Tomcat 版本:Tomcat 8.5.34

  • JDK 版本:JDK 1.8.0_191

下载源代码

  1. 下载 Apache Tomcat

    说明 源代码版本会不断升级。您可以在https://mirrors.aliyun.com/apache/tomcat/tomcat-8/获取合适的安装包地址。

  2. 下载 JDK

    1. 下载JDK安装压缩包jdk-8u191-linux-x64 .tar.gz

      说明 直接用 wget命令在实例中下载JDK安装压缩包,在解压缩时会出错。您可以下载JDK安装压缩包,再上传到实例上。

    2. 登录 ECS管理控制台ECS 管理控制台。

    3. 在左边导航栏中,单击 实例,进入 ECS 实例列表页。

    4. 选择所购 ECS 实例所在的地域,找到已购的 ECS 实例,在 IP 地址 列获取该实例的公网 IP 地址。

    5. 在Winscp工具里用公网 IP 地址连接Linux实例,然后将下载好的JDK安装压缩包上传到Linux实例的根目录下。

安装前准备

  1. 使用管理终端连接ECS实例

  2. 参考添加安全组规则,放行所需端口入方向规则。

  3. 关闭防火墙。

    输入systemctl status firewalld命令查看当前防火墙的状态。



    如果防火墙的状态参数是active,则防火墙为开启状态。如果防火墙的状态参数是inactive,则防火墙为关闭状态。如上图所示,此处防火墙为开启状态,需要运行如下命令关闭防火墙:

    • 如果您想临时关闭防火墙,输入命令systemctl stop firewalld

      说明 这只是暂时关闭防火墙,下次重启Linux后,防火墙还会开启。

    • 如果您想永久关闭防火墙,输入命令systemctl disable firewalld

      说明 您可参考firewalld官网信息来决定何时开启防火墙。

  4. 关闭SELinux。

    • 如果您想临时关闭SELinux,输入命令setenforce 0

      说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux依旧会开启。

    • 如果您想永久关闭SELinux,输入命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按下i键进入编辑模式,修改为SELINUX=disabled,按Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。

      说明 您可参考redhat关于SELinux的官方文档来决定何时开启SELinux。

    1. 运行getenforce命令查看当前SELinux的状态。如果显示Disabled,则SELinux为关闭状态。如果显示Enforcing,则SELinux为开启状态,运行如下命令关闭SELinux:

    2. 重启系统使设置生效。

  5. 创建一般用户 www来运行Tomcat:

    useradd www
  6. 创建网站根目录:

    mkdir -p /data/wwwroot/default
  7. 将需要部署的Java Web项目文件WAR包上传到网站根目录下,然后将网站根目录下文件权限改为 www。本示例将直接在网站根目录下新建一个 Tomcat 测试页面:

    echo Tomcat test > /data/wwwroot/default/index.jsp
    chown -R www.www /data/wwwroot

安装 JDK

按以下步骤安装 JDK。

  1. 新建一个目录:

    mkdir /usr/java
  2. 解压 jdk-8u191-linux-x64.tar.gz 到/usr/java

    chmod +x jdk-8u191-linux-x64.tar.gz
    tar xzf jdk-8u191-linux-x64.tar.gz -C /usr/java
  3. 设置环境变量:

    1. 打开/etc/profile:vi /etc/profile

    2. 按下i 键进入编辑模式。

    3. 在/etc/profile 文件中添加以下信息:

      # set java environmentexport JAVA_HOME=/usr/java/jdk1.8.0_191export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATH
    4. 按下Esc键退出编辑模式,输入:wq保存并关闭文件。

  4. 加载环境变量: source /etc/profile

  5. 运行java -version命令,显示JDK版本信息时,表示 JDK 已经安装成功。

安装 Apache Tomcat

  1. 依次运行以下命令解压apache-tomcat-8.5.34.tar.gz,重命名Tomcat目录,并设置用户权限。

    tar xzf apache-tomcat-8.5.34.tar.gz
    mv apache-tomcat-8.5.34 /usr/local/tomcat/
    chown -R www.www /usr/local/tomcat/

    在 /usr/local/tomcat/目录中:

    • bin:存放 Tomcat 的一些脚本文件,包含启动和关闭 Tomcat 服务脚本。

    • conf:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和 web.xml

    • webapps:Tomcat 的主要 Web 发布目录,默认情况下把 Web 应用文件放于此目录。

    • logs:存放 Tomcat 执行时的日志文件。

  2. 配置server.xml文件:

    1. 运行命令vi server.xml

    2. 按下i键进入编辑模式。

    3. 添加以下内容:

    1. 切换到/usr/local/tomcat/conf/ 目录:cd /usr/local/tomcat/conf/

    2. 重命名server.xml 文件:mv server.xml server.xml_bk

    3. 创建一个新的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>
    4. Esc 键退出编辑模式,输入:wq保存并退出编辑。

  3. 设置 JVM 内存参数:

    1. 运行命令vi /usr/local/tomcat/bin/setenv.sh, 创建/usr/local/tomcat/bin/setenv.sh。

    2. 按下i键进入编辑模式。

    3. 添加以下内容:

      JAVA_OPTS='-Djava.security.egd=file:/dev/./urandom -server -Xms256m -Xmx496m -Dfile.encoding=UTF-8'
    4. 按下Esc 键退出编辑模式,输入:wq保存并退出文件。

  4. 设置Tomcat 自启动脚本。

    1. 下载脚本:wget https://github.com/lj2007331/oneinstack/raw/master/init.d/Tomcat-init

    2. 重命名Tomcat-init:mv Tomcat-init /etc/init.d/tomcat

    3. 添加执行权限:chmod +x /etc/init.d/tomcat

    4. 运行以下命令,设置启动脚本JAVA_HOME。

      sed -i 's@^export JAVA_HOME=.*@export JAVA_HOME=/usr/java/jdk1.8.0_191@' /etc/init.d/tomcat
  5. 设置自启动。

    chkconfig --add tomcat
    chkconfig tomcat on
  6. 启动Tomcat。

    service tomcat start
  7. 在浏览器地址栏中输入http://公网IP:8080进行访问。出现下图所示页面时表示安装成功。

  8. 使用Web服务为ECS Linux实例配置网站及绑定域名。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 弹性计算 安全
阿里云渠道商:新手如何选择阿里云ECS实例?
阿里云ECS凭借弹性扩展、稳定可靠与安全防护,助力企业高效上云。本文系统解析实例规格选择关键因素:业务场景匹配、性能评估、成本优化、地域部署与扩展规划,结合计费模式与实际需求,提供科学选型建议,助您精准匹配资源,提升云上效能。(238字)
|
5月前
|
存储 弹性计算 网络协议
阿里云服务器ECS通用算力型u2a实例,CPU采用AMD EPYC处理器,睿频最高3.7 GHz
阿里云ECS通用算力型u2a实例搭载AMD EPYC处理器,睿频高达3.7GHz,基于CIPU架构,网络与存储突发带宽最高25Gbps,I/O性能强、延迟低。支持多种云盘及IPv4/IPv6,适用于中小型数据库、APP服务等场景,性价比高,官网价降低9%-22%,是中小企业上云优选。
720 0
|
5月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
669 0
|
4月前
|
Shell 网络安全 开发工具
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
297 5
|
4月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
1182 5