一、购买ECS服务器
登陆阿里云,定位到 云服务器ECS > 实例。点击并 创建实例。
服务器购买说明如下,更多说明见阿里云帮助文档:
- 计费方式:ECS服务器付费方式分为 包年包月或按量付费,如果选择按量付费,需要确保账户上至少有100元;
- 服务器所在地域:可根据所在的地理位置选择地域,距离越近,延迟相对越少,下载速度相对越快
- 公网宽带:的选择网络宽带,如果选择 0 MB,则不分配外网IP,该实例无法访问公网
- 安全设置:设置服务器登陆密码,用于ssh登陆
- 网络、实例类型等其他选项按默认选择即可
服务器购买后可在服务器列表查看公网IP
本地ssh到服务器校验服务器是否正常
二、安装JDK、Tomcat
- 2.1 安装JDK
移步到Oracle官网下载系统对应的JDK版本
本地将JDK上传到服务器
scp jdk-8u131-linux-x64.tar.gz root@116.62.67.14:~/home
服务器上安装JDK并设置环境变量
# 检查jdk文件
cd /root/home
# 安装JDK
cd /usr
mkdir java/jdk
cd /root/home
tar zxvf jdk-8u131-linux-x64.tar.gz -C /usr/java/jdk
# 设置环境变量
vi /etc/profile
# 添加如下内容
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_131
export JRE_HOME=/usr/java/jdk/jdk1.8.0_131/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
# 校验jdk是否安装成功
java -version
- 2.2 安装Tomcat
本地将下载好的Tomcat文件上传到服务器
scp apache-tomcat-9.0.0.M22.tar.gz root@116.62.67.14:~/home
服务器上安装Tomcat并验证
# 安装tomcat
cd /usr/java
mkdir tomcat
cd /root/home
tar zxvf jdk-8u131-linux-x64.tar.gz -C /usr/java/tomcat
# 为tomcat添加classpath
cd /usr/java/tomcat/apache-tomcat-9.0.0.M22/bin/
vi setclasspath.sh
# 添加如下内容
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_131
export JRE_HOME=/usr/java/jdk/jdk1.8.0_131/jre
# 启动tocat
./startup.sh
浏览器输入127.0.0.1:8080, 页面异常。修改服务器安全组配置,添加入口规则,将8080端口配置可用
如果仍然访问异常,则尝试关闭防火墙
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙状态,not running表示关闭
firewall -cmd --state
刷新页面,页面仍然异常,查看Tomcat启动状态和端口占用情况
ps -ef | grep tomcat
netstat -anp | grep 8080
Tomcat启动正常,8080端口启动正常,但请求LISTEN状态一直为TIME_WAIT,请求等待,5分钟后TIME_WAIT状态变为ESTABLISHED,请求成功
三、部署应用
新建SpringBoot应用,首先创建空应用,修改pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xiaofan.boot</groupId>
<artifactId>xiaofan-boot</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.2.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
添加controller
package com.xiaofan.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by Jerry on 17/7/16.
*/
@Controller
@EnableAutoConfiguration
public class SimpleController {
@RequestMapping("/")
@ResponseBody
public String home(){
return "hello world!";
}
public static void main(String[] args){
SpringApplication.run(SimpleController.class,args);
}
}
本地启动应用,验证服务正常
将应用打包并上传到服务器
# 打包
cd 应用目录
mvn install -Dmaven.test.skip=true
# 将jar包上传到服务器
cd target
scp your.jar root@116.62.67.14:~/home
服务器上执行应用
# 执行SpringBoot应用(后台运行:nohup java -jar your.jar & )
java -jar your.jar
浏览器验证正常