ubuntu服务器部署vue springboot前后端分离项目

上传构建好的vue前端文件

vscode构建vue项目,会生成dist目录

bash 复制代码
npm run build

在服务器root目录新建/projects/www目录,把dist目录下的所有文件,上传到此目录中

上传ssl证书

上传ssl证书到/projects目录中

配置nginx

编辑 /etc/nginx/sites-enabled/default 配置文件

1.此配置通过http和https访问
bash 复制代码
server {
# http
    listen 80 default_server;
    listen [::]:80 default_server;

# https
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
       
# SSL Settings
    ssl_certificate /projects/bdjw.work_bundle.pem;#你的证书
    ssl_certificate_key /projects/bdjw.work.key;#你的key
    
# 域名    
    server_name bdjw.work www.bdjw.work; # 配置域名 
    
# 代理    
    location / {
      root /projects/www; # 前端代码文件位置
      index index.html;
      try_files $uri $uri/ /index.html; # 解决vue刷新404的问题
    }

    location /api/ {
      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
      add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
      add_header 'Cache-Control' 'no-cache';

      if ($request_method = 'OPTIONS') {
        return 200;
      }
       proxy_pass http://127.0.0.1:8080/; # 反向代理
    }
}
2.此配置http自动跳转到https
bash 复制代码
server {
# https
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name bdjw.work www.bdjw.work; # 配置域名

# SSL Settings
    ssl_certificate /projects/bdjw.work_bundle.pem;#你的证书
    ssl_certificate_key /projects/bdjw.work.key;#你的key

    location / {
      root /projects/www; # 前端代码文件位置
      index index.html;
      try_files $uri $uri/ /index.html; # 解决vue刷新404的问题
    }

    location /api/ {
      add_header 'Access-Control-Allow-Origin' '*';
      add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
      add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS';
      add_header 'Cache-Control' 'no-cache';

      if ($request_method = 'OPTIONS') {
        return 200;
      }
       proxy_pass http://127.0.0.1:8080/; # 反向代理
    }
}


# HTTP请求自动跳转HTTPS
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name bdjw.work www.bdjw.work; # 配置域名
    return  301 https://$server_name$request_uri; # 把HTTP的域名请求转成HTTPS
}
部署springboot项目

部署springboot项目

跨域问题

使用nginx反向代理解决跨域问题,就不需要springboot再做跨域设置,两种方式同时使用会有冲突。

相关推荐
会周易的程序员37 分钟前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
pingglala1 小时前
ubuntu-nat模式不能上网解决方法
linux·运维·ubuntu
一技安身1 小时前
【信创】外网aarch64终端安装deepseek Ragflow 迁移至内网银河麒麟服务器
运维·服务器
微软技术分享2 小时前
Ubuntu 本地部署Ollama+OpenWebUI教程
数据库·ubuntu·postgresql
宿6742 小时前
vue3-config
前端·javascript·vue.js
M哥支付2 小时前
快捷支付 VS 网关支付 安全对比
服务器·网络·其他·微信·金融
2501_928996222 小时前
Agent 开发的 API 选型:从 Function Calling 到多模型协作的中科热备底层逻辑
服务器·重构·gitlab
非凡ghost3 小时前
AI修图不“造假“,摄影师的出片效率加速器
服务器·前端·人工智能·电脑
Ruiery3 小时前
Linux 6.6内核 PCIe 深度解析(十):PCIe Port Driver(portdrv)— 一个物理 Port,拆出五个逻辑服务
linux·运维·服务器
ShineWinsu4 小时前
对于 Vue 3:从为什么学 Vue,到声明式渲染与数据响应式的解析
前端·javascript·vue.js