从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程

如题,本文旨在记录自己从开发到部署一个项目的过程中遇到的问题和解决方案,也可以作为下一次开发部署的参考。因为这个文档是之后写的,可能细节上会有点偏差,欢迎指正。

购置阿里云学生机

阿里云云翼计划

这里购买的是阿里云的云服务器ECS(学生优惠购买需要完成认证),相对于轻量应用服务器来说,可操作空间更大,权限更多一些。

从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第1张图片
在购买过程中,有需要设置实例登录用户的用户名和密码,用户名默认root就可以,一定要记住密码,后面连接服务器需要用到。

购买之后,可以在阿里云 =>云服务器ecs => 实例和镜像 => 实例 中找到自己购买的服务器。

从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第2张图片

这里的公网地址就是可访问的网址,你在本地ssh连接时用的是这个ip地址,网站部署好后访问也是这个网址。

服务器初始配置

本地(Win10)连接服务器建议使用Xshell(家庭与教育版免费),上传下载文件都比较方便,也可使用PuTTY(SSH客户端)+WinSCP(上传下载文件)。这里使用Xshell做示例。

连接服务器

打开Xshell

  1. 点击 文件 => 新建 ,填写上述实例的公网ip地址

从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第3张图片
2. 点击用户身份验证,填写登录用户的用户名和密码,这里的用户名和密码就是你购买服务器时设置的。
从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第4张图片
4. 点击确认,初次登录会弹出提示你保存ssh密钥的提醒框,选择保存就好了。

配置环境

连接成功后,需要先更新一下软件源,然后安装mysql。

安装Mysql

通过安装过程,将被要求为MySQL服务器的root用户输入密码,重新输入密码以确认并按**[Enter]** 。

 apt-get update
 apt-get install mysql-server mysql-client;

从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第5张图片

本地访问mysql测试

mysql -uroot -p****(****是安装时你设置的root密码)

配置Mysql远程连接

参考BOLG

  1. mysql默认是只允许本地主机访问127.0.0.1,并关闭了远程连接,所以安装之后需要打开远程连接,并修改配置允许其他ip访问。

    • MySQL取消限制
    mysql -uroot -p****
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; 
    # % 表示MySQL允许在任何IP连接当前实例
    
    • 修改Mysql配置
    cd /etc/mysql/mysql.conf.d/
    sudo vim mysqld.cnf 
    

    注释掉 bind-address = 127.0.0.1 这一行。使得任何一个ip都可以连接Mysql服务。

  2. 需要在阿里云服务台开放相应端口

    阿里云的服务器设置了安全组规则来限制ecs服务器的ip,端口访问策略。因此需要修改。

    登录阿里云 => 网络与安全 => 安全组

    从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第6张图片
    ​ 在安全组规则里面,添加安全组规则。

​ 端口范围选择 3306,

​ 授权对象设置为0.0.0.0/0 允许所有ip访问
从购置阿里云学生机到开发部署一个SpringBoot+Vue项目全过程_第7张图片

安装JDK

参考BLOG

后端Springboot项目打包

前期准备

  1. 确定项目中使用的接口在服务器上没有被占用。
  2. 将连接的本地数据库换成服务器ip地址。
  3. 在阿里云安全组规则中添加项目使用的端口。
  4. 确定项目使用 jdk1.8 版本

单项目打包

参考 BLOG1 BLOG2

打包jar

​ 打包分为两种,一是打包成war包使用tomcat服务器运行,二是打包成jar包直接执行。由于项目使用Springboot,其中内置了tomcat。所以直接打成jar包运行比较方便。

​ 在项目目录中执行以下命令:

cd 项目跟目录(和pom.xml同级)
mvn clean package
## 或者执行下面的命令
## 排除测试代码后进行打包
mvn clean package  -Dmaven.test.skip=true

​ 打包完成后 jar 包会生成到 target 目录下,命名一般是 项目名+版本号.jar

启动 jar 包命令

java -jar  target/spring-boot-scheduler-1.0.0.jar

​ 这种方式,只要控制台关闭,服务就不能访问了。下面我们使用在后台运行的方式来启动:

nohup java -jar target/spring-boot-scheduler-1.0.0.jar &

​ 也可以在启动的时候选择读取不同的配置文件

java -jar app.jar --spring.profiles.active=dev

多模块打包

这一我有尝试过,但是因为依赖关系的问题,子模块一直打包失败。需要再尝试一下。

参考 BLOG

前端Vue+Element项目打包

  1. 前期准备

    修改本地地址为服务器ip地址

  2. 打包项目为静态文件

    npm run build
    

打包完成后可以在 /static 文件夹下找到 /dist 文件夹

普通部署

把所需的文件上传到服务器上

Xshell 方式

上传(本机 => 服务器)指令为: rz

下载(服务器 => 本机)指令为: sz

运行后端项目

可直接输入以下命令指定项目在对应端口在后台执行 ,

# --server.port=8090指定端口
nohup java -jar xxx.jar --server.port=8090 &

同时相应的日志会默认输出到nohup.out中,可以查看该文件来查看相应的log。

部署前端项目

  1. docker中拉取nginx 镜像

    docker pull nginx
    
  2. 创建dockerfile文件

    FROM nginx
    COPY lab4_fronted/ /usr/share/nginx/html/
    
  3. 创建vue应用镜像

    # -t 是给镜像命名 . 是基于当前目录的Dockerfile来构建镜像
    docker build -t lab4_fronted .
    
  4. 查看镜像

    docker images
    
  5. 创建容器

    docker run --name mini -p 8080:8080 lab4_fronted
    
  6. 进入容器修改nginx配置做代理转发

    待写

部署后端项目

1.直接部署

  1. 在项目目录下面的target文件夹,把编译好的jar包传到服务器上
  2. 运行:java -jar mini-app-0.0.1-SNAPSHOT.jar
  3. 可以使用–参数名=值来实现运行时的配置,eg:--spring.profiles.active=prod,指定生产环境的配置文件

2.容器部署

  1. 在项目目录下创建Dockerfile文件。指定基础镜像为java8,复制jar包进去,配置执行的命令。

      	FROM java:8
      	
      	COPY target/mini-app-0.0.1-SNAPSHOT.jar app.jar
      	
      	ENTRYPOINT ["java", "-jar", "/app.jar"]
    
  2. 在命令行中进入项目目录,执行构建镜像命令

    docker build -t mini-app:1.0 .

    -t指定镜像名称

    最后不能漏掉一点,否则出错

  3. 构建成功后创建容器

    docker run --name mini -p 8081:8081 mini-app:1.0

    --name指定容器名称

    -p指定端口映射

  4. 容器创建成功后默认启动,下面是停止和启动容器命令

    docker stop mini

    docker start mini

  5. 查看运行日志

    docker logs mini

你可能感兴趣的:(后端工程师进阶之路)