本篇文档介绍如何手动在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。
    1. 运行getenforce命令查看当前SELinux的状态。如果显示Disabled,则SELinux为关闭状态。如果显示Enforcing,则SELinux为开启状态,运行如下命令关闭SELinux:
      • 如果您想临时关闭SELinux,输入命令setenforce 0
        说明 这只是暂时关闭SELinux,下次重启Linux后,SELinux依旧会开启。
      • 如果您想永久关闭SELinux,输入命令vi /etc/selinux/config编辑SELinux配置文件。回车后,把光标移动到SELINUX=enforcing这一行,按下i键进入编辑模式,修改为SELINUX=disabled,按Esc键,然后输入:wq并回车以保存并关闭SELinux配置文件。
        说明 您可参考redhat关于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 environment
      export JAVA_HOME=/usr/java/jdk1.8.0_191
      export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
      export 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.xmlweb.xml
    • webapps:Tomcat 的主要 Web 发布目录,默认情况下把 Web 应用文件放于此目录。
    • logs:存放 Tomcat 执行时的日志文件。
  2. 配置server.xml文件:
    1. 切换到/usr/local/tomcat/conf/ 目录:cd /usr/local/tomcat/conf/
    2. 重命名server.xml 文件:mv server.xml server.xml_bk
    3. 创建一个新的server.xml 文件:
      1. 运行命令vi server.xml
      2. 按下i键进入编辑模式。
      3. 添加以下内容:
      <?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实例配置网站及绑定域名。