如何上线前后端项目(宝塔踩坑版)

宝塔上线网站流程

前言

为了协助师兄上线网站,又一次重新复习了上线的流程。该项目要求访问地址必须是服务器的ip,因此不能采用快速上线的方式,如:前端采用vercel,后端采用第三方平台(微信云)、又或者是内网穿透等方式!
这里推荐我喜欢一个up主yupi快速上线项目的教程:https://www.bilibili.com/video/BV1z14y1r7Fc/?spm_id_from=333.999.0.0&vd_source=36cdcc262df0dee0619a31d3d58e6e19

上线工具

  1. 服务器(这是必须的)
  2. xshell(远程连接服务器,模拟终端)
  3. 数据可视化工具(远程连接服务器数据库,建库建表)
  4. 宝塔(一键安装上线项目所需的环境)
    ps:宝塔需要安装在服务器上,通过该工具进行可视化(省去一些安装命令和一些文件操作的命令行)

项目所需环境

该项目是前后端分离,前端vue,后端springboot

  1. nginx
  2. Java8
  3. MySQL数据库
    ps:
    (1)通过宝塔安装nginx和mysql数据库(建议版本安装MySQL8.0以上,因为宝塔默认安装5.7版本)
    (2)如果你是采用宝塔启动Java项目,是会启动宝塔默认的JDK版本,因此需要指定你自己JDK进行编译项目!!否则可能会报JDK版本编译错误!如下图JDK是宝塔默认的版本,还有一个1.7的是宝塔安装的(很难崩)
    在这里插入图片描述
    (3)Java你就必须手动安装,这里推荐一篇文章,跟着安装即可~ linux安装Java环境指南 ,同时Java8建议最新,我的JDK版本1.8.0 381,所以推荐以这个版本往上走
    ps:要保持一致,项目JDK的文件地址和项目执行命令的地址要一模一样!!!
    在这里插入图片描述

上线问题

通过宝塔安装完MySQL数据库之后,可以采用可视化工具(Navigate),也可以使用xshell启动MySQL的黑框客户端。(应该都选可视化工具吧doge)

1. 远程连接数据库连不上

在这里插入图片描述
检查一下配置是否遵循:

  • 服务器的数据库3306端口需要打开(后面会继续阐述)
  • 同时修改写入MySQL数据库的权限Navicat如何连接远程服务器的MySQL
  • 需要记住记住自己数据库的密码和账号(账号默认root,密码需要自己在宝塔修改,因为是通过宝塔安装数据库的,因此提供的密码是初始的。该密码比较难记,因此需要自己自行修改)
    在这里插入图片描述
  1. 重点)服务器会有对端口额外加一层保护,即即使在宝塔开放了端口,默认所有IP访问,Navigate依旧远程连接不上!因此我们得额外在服务器上允许所有IP访问某个端口,比如数据库的端口是3306!
  • 服务器端口设置
    在这里插入图片描述
  • 宝塔端口设置
    在这里插入图片描述
    ps:如果阁下不想在服务器额外设置的话,可以关闭服务器的防火墙也是可以的,但是危险程度阁下可以考虑一下(doge)
2. 跨域问题

这个算是前后端分离的项目“通病”了,该项目通过后端配置解决该问题!这里献上祖传配置,基本是可以解决跨域问题吧(大概doge)

@Configuration
public class CorsMapping implements WebMvcConfigurer {
    @Override
    /**
     * 重新跨域支持方法
     * CorsRegistry  开启跨域注册
     */
    public void addCorsMappings(CorsRegistry registry) {
        //addMapping 添加可跨域的请求地址
        registry.addMapping("/**")
                //设置跨域 域名权限 规定由某一个指定的域名+端口能访问跨域项目
                //可以添加多个访问网址,本质逻辑就是网址的黑白名单,底层是数组
                .allowedOrigins("http://127.0.0.1:5173")
				// .allowedOriginPatterns("*")
                //是否开启cookie跨域
                .allowCredentials(true)
                //规定能够跨域访问的方法类型
                .allowedMethods("GET","POST","DELETE","PUT","OPTIONS")
                //添加验证头信息  token
                .allowedHeaders("*")
                .exposedHeaders("*");
                //预检请求存活时间 在此期间不再次发送预检请求
				//.maxAge(3600);
    }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brilliant.Louis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值