前后端分离项目在云服务器上的部署(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项目能够启动的话,访问前端页面:

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

项目就部署完成了

相关推荐
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ3 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
小涛不学习4 小时前
Spring Boot 详解(从入门到原理)
java·spring boot·后端
05大叔5 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密5 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20155 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
卷福同学5 小时前
【养虾日记】QClaw操作浏览器自动化发文
运维·人工智能·程序人生·自动化
woho7788996 小时前
不同网段IP的网络打印机,打印、扫描设置
运维·服务器·网络
耗子会飞6 小时前
小白学习固定VM虚拟机的centos服务器的IP
运维·服务器·centos
弹简特7 小时前
【JavaEE18-后端部分】 MyBatis 入门第二篇:使用注解完成增删改查(含有参数传递底层原理)
spring boot·mybatis
门豪杰7 小时前
Ubuntu下安装Claude Code
linux·运维·ubuntu·claude·claude code