springboot vue 项目部署解决跨域问题

前后端分离项目,需要解决跨域问题,本文章在nginx上解决跨域问题。

1、Vue前端配置

每次请求加上前缀 /api,如登录请求:http://localhost/api/login

前端端口配置

2、springboot后端配置

3、nginx代理转发配置

相关代码

 location /api/ {
         rewrite ^/api/(.*)$ /$1 break;   #取出路径中的/api/
         proxy_pass http://127.0.0.1:8080; # 目标服务器和端口
         proxy_redirect off;
         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;

        }

        location / {
            root   html/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #解决刷新404
        }

参考文章:超详细SpringBoot+Vue项目部署(两个Vue项目)-CSDN博客

### 宝塔面板部署 SpringBoot 后端与 Vue 前端项目的教程及配置方法 #### 一、环境搭建 在宝塔面板上部署 SpringBootVue 构成的全栈项目前,需先完成基础环境的安装。这通常包括 Java 运行环境以及 Nginx 或 Apache 的配置。 - **Java 环境**:SpringBoot 应用依赖于 JDK,因此需要在服务器上安装适合版本的 JDK[^1]。 - **Nginx/Apache 配置**:Vue 前端应用可以通过静态文件服务的方式运行,推荐使用 Nginx 来提供高效的静态资源加载能力[^2]。 ```bash # 在 CentOS 上安装 OpenJDK (以 JDK8 为例) sudo yum install java-1.8.0-openjdk-devel java -version ``` --- #### 二、后端部署SpringBoot) 对于 SpringBoot 后端部分,主要涉及以下几个步骤: 1. **打包 SpringBoot 工程** 使用 Maven 或 Gradle 将工程构建为可执行 JAR 文件。命令如下: ```bash mvn clean package -DskipTests ``` 打包完成后会在 `target` 目录下生成 `.jar` 文件。 2. **上传并启动 SpringBoot** 利用 FTP/SFTP 工具或者宝塔自带的文件管理器将 `.jar` 文件上传到服务器指定路径。随后可通过以下方式启动程序: ```bash nohup java -jar your-springboot-app.jar > app.log 2>&1 & tail -f app.log ``` 3. **防火墙设置** 如果 SpringBoot 提供的服务监听特定端口,则需要开放该端口以便外部访问。例如,假设 SpringBoot 默认监听的是 8080 端口: ```bash firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload ``` 4. **反向代理配置** 可选地,可以利用 Nginx 对外暴露统一接口地址,并隐藏实际的 SpringBoot 端口号。编辑 Nginx 配置文件 `/etc/nginx/conf.d/springboot.conf` 添加如下内容: ```nginx server { listen 80; server_name your-domain.com; 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; } } ``` --- #### 三、前端部署Vue) 针对 Vue 前端部分,其核心在于将编译后的静态文件托管至 Web 服务器中。 1. **打包 Vue 工程** 类似于后端操作,首先需要对 Vue 项目进行生产环境下的打包处理: ```bash npm run build ``` 此过程会生成位于 `dist` 文件夹中的静态资源文件集合。 2. **上传静态文件** 把上述生成好的 `dist` 文件夹复制到目标主机上的某个目录里,比如 `/www/wwwroot/vueapp`。 3. **配置 Nginx 路由规则** 修改对应的站点配置文件来支持单页应用程序(SPA),确保刷新页面时不会返回 404 错误: ```nginx server { listen 80; server_name your-domain.com; root /www/wwwroot/vueapp; index index.html; location / { try_files $uri /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } ``` 4. **测试连接** 浏览器输入名验证是否能够正常展示首页界面,同时确认 API 请求能否成功抵达后台服务节点。 --- #### 四、注意事项 - **问题解决** 若前后端分离部署在同一台机器的不同端口上,默认情况下会产生 CORS (Cross-Origin Resource Sharing)限制现象。可以在 SpringBoot 中添加全局过滤器或单独控制器实现允许请求的功能;也可以借助 Nginx 统一转发机制规避此麻烦。 - **性能优化建议** 生产环境下应考虑启用 HTTPS 加密传输协议保护数据安全;另外还可以引入缓存策略减少数据库查询压力提升响应速度等措施进一步增强用户体验效果。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值