使用Nginx部署Vue+SpringBoot前后端分离项目(超详细!)

目录

一、前后端环境准备

1、前端环境准备

         2、后端环境准备

二、前后端打包

1、前端打包

2、后端打包

三、服务器前后端配置及部署

1、前端配置

安装nginx

创建项目目录

前端项目部署

2、后端配置

安装宝塔

安装mysql

使用本地Navicat连接远程数据库

安装jdk环境

安装redis

后端项目部署


需要的工具:Xshell 连接远程服务器、Xftp 服务器文件可视化

项目访问:http://www.zxlsc.top

我的个人博客微信小程序欢迎访问

一、前后端环境准备

1、前端环境准备

在前端的config包下的index.js中配置 代理配置表,配置特定的请求代理到对应的API接口

 proxyTable: {
    	'/api': {
        target: 'http://服务器ip或者绑定的域名',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },

 在设置开发环境和生产环境的URL

 设置生产环境的URL

 记住一定要加上/api 方便在服务器中使用nginx进行反向代理。

2、后端环境准备

跨域请求配置允许前端访问后端的URL请求

@Override
    public void addCorsMappings(CorsRegistry registry) {
        //进行跨域配置
        //前端占用8080 后端占用8888
        //两个端口之间的访问就是跨域
        //要允许8080端口访问8888
        registry.addMapping("/**").allowedOrigins("http://localhost:8080/");
    }

在配置文件中设置contextPath属性,类似于承接上下文,与前端反向代理的进行连接,反向代理在后续会提到可以先这么配置

后端环境准备完成

二、前后端打包

1、前端打包

2、后端打包

三、服务器前后端配置及部署

1、前端配置

使用Xshell在服务器中下载安装nginx用来配置前端工程,Xshell可以在官网下载,顺便再下载一个Xftp

安装nginx

  • 安装环境
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 安装wgte
yum install wget
  • 下载nginx
wget https://nginx.org/download/nginx-1.21.6.tar.gz
  • 解压压缩文件
tar -zxvf nginx-1.21.6.tar.gz
  • 进入nginx文件夹
cd nginx-1.21.6
  • 配置
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
  • 编译和安装
编译:make
安装:make install
  • 运行
/usr/local/nginx/sbin/nginx
  •  重新加载
/usr/local/nginx/sbin/nginx -s reload
  • 如果更改了配置文件建议使用这个方式重新启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  • 停止服务
/usr/local/nginx/sbin/nginx -s stop

输入浏览器ip,nginx默认是80端口,所以直接使用服务器ip访问

创建项目目录

使用Xftp再服务器任意目录下创建一个项目的文件夹用来存放项目文件,记住这个文件的地址,可以在任意位置创建

前端项目部署

将上一个步骤中打包好的dist包通过Xftp上传到服务器的项目文件中,并记住这个地址

使用Xftp打开/usr/local/nginx安装目录下的config配置文件,修改以下三项

如果配置多个项目 只需要 在server 同级下再创建一个相同的server{} 修改位置即可

 然后重启nginx

前端成功展示

2、后端配置

安装宝塔

由于springboot项目自带tomcat,所以只需要将打包好的jar包上传到项目文件中通过

java -jar jar包名

这里由于使用Xftp传递文件速度过慢,所以使用宝塔可视化面板进行传输

安装宝塔

如果安装过wegt可以直接安装&&后面的内容
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

 访问宝塔面板并下载mysql , 记得要在阿里云放行对应端口的安全组

安装mysql

顺便安装一个mysql环境

设置一下数据库的root密码

使用本地Navicat连接远程数据库

使用SSH隧道连接服务器的数据库

 

 将本地数据库的表复制到云服务器数据库

安装jdk环境

在宝塔项目中添加jdk

安装一个web环境,会自带jdk并且配置好了环境变量,我一般习惯这种创建jdk的方式,也可以使用命令来安装jdk

安装redis

在redis官网下载.gz的安装包然后通过Xftp传输到服务器的root目录下

 在Xshell中进行解压,依次输入命令

tar -zxvf 压缩包名

cd 解压后的文件名

make

设置redis后台方式运行

 右键编辑,依次找到并修改以下代码

bind 127.0.0.1 => #bind 127.0.0.1

protected-mode yse => protected-mode no

daemonize no => daemonize yes

保存文件后运行redis

cd /usr/local/bin

#复制一份redis.conf
./redis-server redis.conf

#如果无法连接就重启redis
ps -aux | grep redis
kill -9 对应的端口号

后端项目部署

 然后在Xshell中进入这个项目文件夹,运行jar包

命令:
java -jar xxx.jar

项目当前运行成功,我们来进行一下端口测试,使用Postman测试一下接口能否能接通

此时我们发现,在访问路劲正确的前提下接口连接超时

 解决方法

关闭网站防火墙即可解决,记住一定要开放前后端对应的端口!

防火墙关闭后再次进行postman接口测试时,发现接通成功但是无数据,并显示了程序中设置的异常提示

此时我们到服务器中的springboot运行日志查看报错信息

根据这个报错信息我们可以看到是由于数据库的权限问题导致的

此时我们需要给当前的数据库账号密码添加最高权限才能使得程序中设置的账号密码能够访问到数据库。

先在服务器中登录我们的mysql,然后输入:
grant all privileges on *.* to 'root'@'服务器ip' identified by '数据库密码';

 

接口测通,数据成功展示。

#服务器后台运行jar包并生成日志文件
nohup java -jar XXX.jar >XXX.log 2>&1 &
#关闭
ps -aux 找到对应服务的PID
kill -9 PID

此时来访问前端页面查看数据是否能展示在页面

 此时发现post请求变成了option请求,发生了跨域问题,原因在于后端的跨域代码出现了问题

将原本作为跨域请求的代码修改为

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //进行跨域配置
        //前端占用8080 后端占用8888
        //两个端口之间的访问就是跨域
        //防止跨域报错
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }

即可解决跨域问题!

至此前后端分离项目搭建完成!!

  • 38
    点赞
  • 269
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于SpringBoot+Vue.js的在线问卷调查系统是一个现代化、响应式的Web应用程序,旨在为用户提供一个简洁、高效的在线问卷填写和数据分析平台。该系统采用了前后端分离的架构设计,前端使用Vue.js框架构建用户界面,后端则使用SpringBoot框架处理业务逻辑和数据存储。 主要功能如下: 问卷管理:管理员可以创建、编辑、删除问卷,设置问卷的标题、描述、问题类型(单选、多选、填空等)以及答案选项。 用户管理:管理员可以查看、编辑、删除用户信息,包括用户名、密码、邮箱等。 数据收集:用户可以在平台上填写问卷,提交后数据将被存储到数据库中。 数据分析:管理员可以查看问卷的数据分析报告,包括各个问题的统计结果、图表展示等。 权限控制:系统支持不同角色的用户登录,如普通用户、管理员等,根据角色分配不同的操作权限。 技术栈: 前端Vue.js、Element UI、Axios、Vuex、Vue Router 后端:SpringBoot、MyBatis、MySQL、Redis、JWT 开发工具:IntelliJ IDEA、Visual Studio Code、Git、Maven 部署:Docker、Nginx 通过本系统的设计与实现,可以帮助企业、学校等组织快速搭建一个在线问卷调查平台,方便地收集和分析用户数据,为决策提供有力支持。同时,源码和部署说明的提供,也使得开发者可以根据实际需求进行二次开发和定制化部署

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值