SpringBoot3 + Vue3 + MySQL前后端分离项目部署到阿里云服务器

SpringBoot3 + Vue3 + MySQL前后端分离项目部署到阿里云服务器

服务器系统:CentOS
推荐使用FinalShell这个终端软件来连接云服务器(上传下载文件方便)

Vue3项目的部署

  • 参考我的另一篇博文:http://t.csdnimg.cn/SV8fS

  • 修改项目的配置vite.config.js,注意新增的’/api’转发路径,下面有个Bug需要用到

    import { fileURLToPath, URL } from 'node:url'
    
    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    import vueJsx from '@vitejs/plugin-vue-jsx'
    
    // https://vitejs.dev/config/
    export default defineConfig({
      // 这里是原有的配置
      plugins: [
        vue(),
        vueJsx(),
      ],
      resolve: {
        alias: {
          '@': fileURLToPath(new URL('./src', import.meta.url))
        }
      }
      ,
      // 这是为了解决跨域问题写的代理配置
      server:{
        proxy:{
          '/api':{//获取路径中包含了/api的请求,与axios请求同步增加
              target:'http://云服务器公网IP:后端访问端口(8081)',//后台服务所在的源
              changeOrigin:true,//修改源
              rewrite:(path)=>path.replace(/^\/api/,'')///api替换为''
          }
        }
      }
    })
    

Java环境的安装与配置

  • 下载JDK17 linux 版本

    • 在https://www.oracle.com/cn/java/technologies/downloads/#java17下载x64 Compressed Archive版本
  • 上传下载的压缩包到usr/local(任意路径都行)并解压

    # 解压得到一个jdk-17.0.11的文件夹
    tar -zxvf jdk-17_linux-x64_bin.tar.gz
    
  • 配置Java的环境变量

    # 在etc/profile配置文件以下内容增加
    export JAVA_HOME=/usr/local/jdk-17.0.11
    export PATH=$JAVA_HOME/bin:$PATH
    # 让配置生效
    source etc/profile
    
  • 验证Java环境是否配置成功

    java -version
    # 输出
    java version "17.0.11" 2024-04-16 LTS
    Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207)
    Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing)
    

MySQL的安装和配置

  • 阿里云设置安全组,开放入方向的 3306端口(数据库的连接端口)的访问规则 。授权对象:0.0.0.0/0
  • 安装和配置
    # PS: 用这种办法下载MySQL好像最高只能安装5.7版本的,如果想安装8.0+版本的自行度娘吧~
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum -y install mysql-server(mysql-community-server)
    #这里下载太慢了,更换个镜像下载
    修改/etc/yum.repos.d/mysql-community.repo,
    把[mysql56-community](看你下载的是哪个版本就修改哪一个)的baseurl修改为
    baseurl=http://mirrors.ustc.edu.cn/mysql-repo/yum/mysql-5.6-community/el/7/x86_64/
    # 启动MySQL
    service mysqld start
    # 进入MySQL修改密码
    mysql -uroot
    ---- grant all privileges on *.* to root@"%" identified by "你的密码";
    ---- exit
    # 重启MySQL
    service mysqld restart
    # 用navicat远程连接成功,注意主机名是云服务器的公网IP
    

SpringBoot3项目的部署

  • 阿里云设置安全组,开放入方向的8081端口(后端项目的访问端口)的访问规则 。授权对象:0.0.0.0/0

  • 修改项目的配置文件application.yml

    spring:
      # 数据库连接设置 
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://云服务器公网IP:3306/你的数据库名称
        username: root
        password: 密码
      # 我这里是设置文件上传的大小限制(可忽略)
      servlet:
        multipart:
          max-file-size: 500MB
          max-request-size: 500MB
    # mybatis设置
    mybatis:
      configuration:
        map-underscore-to-camel-case: true  # 开启驼峰命名
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 后端访问端口设置,与第一步开放的端口对应
    server:
      port: 8081
    
  • maven打包项目

    mvn clean
    mvn package
    # 成功的话会在项目的target目录下生成一个jar包,我们就需要这个jar包
    
  • 上传jar包到服务器上的/usr/local/java-project(任意目录)

  • 运行项目

    cd /usr/local/java-project(这是我新建的文件夹,专门放置Java项目)
    nohup java -jar education-game-0.0.1-SNAPSHOT.jar(你的jar包) > output.log &
    # 命令解释
    nohup:即使你关闭了终端,命令也不会被挂起(即终止)。
    > output.log:将标准输出(stdout)重定向到 output.log 文件。
    &:在命令的末尾,它将命令放到后台执行,这样你就可以继续在终端中工作,而不需要等待 Java 应用程序完成。
    
  • 终止项目运行--------至此整个SpringBoot3 + Vue3 + MySQL已成功部署到云服务器上

    netstat -tulnp | grep :8081
    kill -9 进程号
    

Bug及其解决

  • post请求,nginx报错,405 Not Allowed或者请求无数据返回

    # 修改nginx的配置文件
    /usr/local/nginx/conf/nginx.conf
    # 增加下面配置,注意/api/与Vue的转发路径配置一样
    location /api/ {
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://云服务器公网IP:后端访问端口(8081)/;
            }
    # 让配置生效
    cd /usr/local/nginx/sbin
    ./nginx -s reload
    
  • 文件上传,nginx报错,413 Request Entity Too Large

    # 修改nginx的配置文件
    /usr/local/nginx/conf/nginx.conf
    直接在http{}里面增加
    client_max_body_size 500m;
    # 让配置生效
    cd /usr/local/nginx/sbin
    ./nginx -s reload
    
  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值