前后端分离项目在云服务器上的部署(Spring Boot + Vue)

目录

1.服务器的环境准备

(1)redis

(2)nginx

2.前端项目部署

(1)打包前端项目

(2)修改nginx的配置文件

3.后端项目部署

(1)打包后端项目

(2)云服务器运行


1.服务器的环境准备

(1)redis

在云服务器上配置redis环境(OpenCloudOS)-CSDN博客

(2)nginx

在官网下载好压缩包上传到服务器当中:

解压后会出现第二个文件夹ngnix-1.23.3

输入

复制代码
./configure

这样就算完成了

然后编译安装nginx:

复制代码
make&&make install

运行完这行命令之后,会在/usr/local/目录产生一个nginx文件夹

进入nginx文件夹之后如图:

进入nginx的/sbin目录下运行:

复制代码
./nginx

通过ip地址+端口号(默认80)的方式访问:

出现这个页面说明运行成功了

2.前端项目部署

(1)打包前端项目

修改vue.config.js当中的url:按照自己的ip和后端的springboot端口修改

在vscode中运行命令:

复制代码
npm run build:prod

运行成功之后会在项目文件夹目录里面生成打包好的文件夹dist

在云服务器中创建目录:/usr/local/src/myLibrary/

把打包好的dist文件夹放到里面

(2)修改nginx的配置文件

按照部署需要修改配置文件:

复制代码
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  106.55.104.210;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        # 前端静态文件
        location / {
            root   /usr/local/src/myLibrary/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;  # 解决 Vue 路由问题
        }

        # 后端 API 代理 - 将 /prod-api/ 转发到 Spring Boot
        location /prod-api/ {
            proxy_pass http://127.0.0.1:8282/;  # 转发到 Spring Boot
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            
            # 增加超时设置
            proxy_connect_timeout 30s;
            proxy_send_timeout 30s;
            proxy_read_timeout 30s;
        }

        
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   404 =200 /index.html;
        location = /50x.html {
            #root   html;
            root /usr/local/src/myLibrary/dist;
        }

    }
}

重启nginx让配置生效,

然后再用ip地址+端口的形式访问:

前端就部署完了

3.后端项目部署

(1)打包后端项目

修改配置文件:

把原来的图片路径改一下,去掉D:前缀,云服务器没有D盘,改到根目录下

修改数据库的用户名和密码,改成云服务器的

用Maven打包:双击install

命令执行无误之后会在项目根目录下生成target文件夹,jar包就在里面。

把jar包放到云服务器的目录下(自己按需创建)

(2)云服务器运行

然后进入到这个目录下运行命令:

复制代码
nohup java -jar ai_community-1.0-SNAPSHOT.jar nohup.out &

这个命令可以让springboot项目在后台运行,并且日志产生到该目录下的nohup.out当中

nohup.out如图:

springboot项目能够启动的话,访问前端页面:

输入账号密码验证码之后登录:

项目就部署完成了

相关推荐
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之lsattr命令(实操篇)
linux·运维·服务器·笔记·elasticsearch
计算机毕设指导62 小时前
基于微信小程序图像识别的智能垃圾分类系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·分类·maven
郝学胜-神的一滴2 小时前
Linux线程错误调试指南:从原理到实践
linux·服务器·开发语言·c++·程序人生
iconball2 小时前
个人用云计算学习笔记 --32 Docker和docker swarm
运维·笔记·学习·docker·容器·云计算
m0_555762902 小时前
linux开发——网络配置(含VM网络配置)
linux·运维·网络
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之mdir命令(实操篇)
linux·运维·服务器·chrome·笔记
摇滚侠2 小时前
镜像容器相关命令,docker export/import/save/load/commit,导出容器给别人使用
运维·docker·容器
悟空码字2 小时前
SpringBoot读取Excel文件,一场与“表格怪兽”的搏斗记
java·spring boot·后端
小王师傅663 小时前
【轻松入门SpringBoot】actuator健康检查(中)
java·spring boot·spring