spring boot 项目部署到阿里云ECS服务器小结

我采用的是最传统的方法把项目打包war,上传到服务器tomcat webapps 目录下。服务器Ubuntu系统

1. 阿里云服务器配置

先安装mysql
apt-get install mysql-server

然后修改mysql配置 让3306端口可以远程访问,修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,把bind-address = 127.0.0.1这行注释掉。
然后grant all on *.* to root@'%' identified by 'password';授权root用户远程访问mysql。
执行netstat -an | grep 3306检测3306端口
tcp6 0 0 :::3306 :::* LISTEN 3306前面为0表示已经可以远程访问了。
但是阿里云服务器3306端口没有开启,需要 安全组->配置规则里面添加3306.如图

用MySQLWorkbench远程连接mysql 填写服务器公网IP,mysql 用户名 root,和密码 测试连
spring boot 项目部署到阿里云ECS服务器小结_第1张图片

然后修改项目数据库地址
spring.datasource.url=jdbc:mysql://*.*.*.*:3306/databasename?autoReconnect=true&useSSL=false
运行项目,如果没有问题,就进行下一步打包。

2. 项目打包

spring boot 打war包。基本步骤

  1. 修改pom文件,jar 中jar改成war。

  2. 修改web 依赖 去掉内嵌的tomcat。



            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-tomcat
                
            
        

            org.springframework.boot
            spring-boot-starter-tomcat
            provided
        

  1. 修改Application.java 文件
// 继承SpringBootServletInitializer
public class Application  extends SpringBootServletInitializer{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

// 重写方法
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(applicationClass);
    }

    private static Class applicationClass = Application.class;
}
  1. 这个时候如果直接点击运行按钮的话,会出错,这是Idea的bug,需要mvn spring-boot:run一遍就好了。然后打war包。

3.上传

上传
scp ~/Desktop/demo.war [email protected]:/usr/java/tomcat/apache-tomcat-8.5.15/webapps/

4. 访问

在浏览器中输入http:x.x.x.x/demo/就可以访问了。

可能遇到的问题

如果不能访问,可能是阿里云服务器默认80端口没开启,去配置一下就行。
如果返回404,去tomcat/logs 目录下,查看一下log,查找原因。

你可能感兴趣的:(spring boot 项目部署到阿里云ECS服务器小结)