SpringBoot+Vue+Nginx+ssl 前后端分离项目部署

SpringBoot+Vue+Nginx+ssl 前后端分离项目部署

部署所需

将项目部署在Linux上,需要这些东西

  1. 域名: 在腾讯云购买的域名,并且在域名解析中添加二级域名作为API的域名,域名可以不需要没有;
  2. SSL证书: 在腾讯云可免费申请,分别为购买的域名和解析的二级域名申请SSL证书,没购买域名也可以不需要;
  3. Nginx: 安装教程详情见百度~;
  4. JDK: 同上;

部署Vue项目

  1. 打包: 开发工具中打开命令行执行
npm run build
  1. 部署: 打包后会在项目中生成dist文件夹,将文件夹中所有的文件拷贝到Nginx安装目录的 /html 文件夹下
  2. 安装SSL证书: 腾讯云申请证书后,下载,将Nginx文件夹下的两个文件拷贝到Nginx安装目录下的 /conf 文件夹下
  3. 配置SSL: 编辑 /conf 文件夹下的 nginx.conf 文件
server {
   
   
    listen       443 ssl;
    #域名或者localhost
    server_name  www.xxxxx.cn;
    root   /usr/local/webserver/nginx/html;
    index  index.html index.htm;
    #以下两个为证书文件
    ssl_certificate 1_www.xxxxx.cn_bundle.crt;
    ssl_certificate_key 2_www.xxxxx.cn.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
   
   
        index  index.html index.htm;
   
在部基于 Spring Boot 和 Vue 3 的前后端分离项目时,通常需要将前端项目打包后部Nginx 中,并通过 Nginx 作为反向代理将后端请求转发到 Spring Boot 服务。以下是详细的部步骤和配置说明。 ### 3.1 打包 Vue 3 前端项目 首先,在本地开发环境中完成 Vue 3 项目的打包操作。通常使用 `npm run build` 或 `yarn build` 命令进行打包。 ```bash npm run build ``` 该命令会根据 `vue.config.js` 中的配置生成一个 `dist` 目录,其中包含所有静态资源文件(HTML、CSS、JavaScript 等)。 - 确保 `vue.config.js` 中的 `publicPath` 配置为相对路径 `'./'`,以避免部时资源路径问题[^1]。 ```javascript module.exports = { publicPath: './', } ``` ### 3.2 将前端项目部Nginx 将打包好的 `dist` 文件夹内容复制到服务器上 Nginx 的静态资源目录中。例如,可以将文件放置在 `/usr/share/nginx/html/myapp`。 - 修改 Nginx 配置文件(通常位于 `/etc/nginx/nginx.conf` 或 `/usr/local/nginx/conf/nginx.conf`),添加如下配置以支持 Vue 项目的 HTML5 History 模式路由[^3]: ```nginx server { listen 80; server_name your_domain_or_ip; location / { root /usr/share/nginx/html/myapp; index index.html; try_files $uri $uri/ $uri.html /index.html; } } ``` - `try_files` 指令确保 Vue 的前端路由在刷新页面时不会返回 404。 ### 3.3 部 Spring Boot 后端服务 Spring Boot 项目通常打包为 `.jar` 文件,可通过如下命令构建: ```bash mvn clean package ``` 构建完成后,上传 `.jar` 文件到服务器并运行: ```bash java -jar your-springboot-app.jar ``` 默认情况下,Spring Boot 应用监听 `localhost:8080`。 ### 3.4 配置 Nginx 反向代理前后端请求 在 Nginx配置反向代理,将 `/api` 路径下的请求转发到 Spring Boot 后端服务,实现前后端分离。 ```nginx server { listen 80; server_name your_domain_or_ip; location / { root /usr/share/nginx/html/myapp; index index.html; try_files $uri $uri/ $uri.html /index.html; } location /api { proxy_pass http://localhost:8080; 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; } } ``` - 前端通过 `/api/xxx` 发起请求时,Nginx 会将请求转发到后端 Spring Boot 服务,实现跨域请求的统一域名访问,避免 CORS 问题[^2]。 ### 3.5 HTTPS 配置(可选) 若需启用 HTTPS,可在 Nginx配置 SSL 证书,如下所示[^4]: ```nginx server { listen 443 ssl; server_name your_domain; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/privkey.pem; location / { root /usr/share/nginx/html/myapp; index index.html; try_files $uri $uri/ $uri.html /index.html; } location /api { proxy_pass http://localhost:8080; 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 https; } } ``` ### 3.6 重启 Nginx 并测试 完成配置后,检查 Nginx 配置是否正确并重启服务: ```bash nginx -t systemctl restart nginx ``` 访问 `http://your_domain_or_ip`,前端页面应正常加载,并能通过 `/api` 路径与后端通信。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值