当前位置: 首页 > news >正文

【实战指南】前端项目Nginx配置全流程:从打包部署到解决跨域/路由循环问题

一、场景需求
作为前端开发者,我们需要将Vue/React项目通过Nginx部署,并实现:

生产环境代理后端API
支持SPA路由刷新不404
解决联调时的跨域问题
为实施团队提供测试环境访问入口

二、环境准备
前端项目:vue2
服务器:Windows Server 2019
Nginx版本:1.28.0
后端接口:http://192.16.1.14:8092

三、完整配置流程
步骤1:前端项目打包
npm run build
生成dist目录(包含index.html和静态资源)

步骤2:Nginx基础配置
在nginx1.28.0文件夹下找到conf文件夹,其中的nginx.conf就是nginx的配置文件
在这里插入图片描述

worker_processes  1;events {worker_connections  1024;
}http {server {listen       8100;//端口可能会被占用,如占用,需要更换server_name  192.16.1.100;root         html/dist; # 前端资源路径# 处理静态资源location / {try_files $uri $uri/ /index.html;index  index.html;}# 代理后端APIlocation /api/ {proxy_pass http://192.16.1.14:8092/;//后端地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}location /flow/ {proxy_pass http://192.16.1.58:8093/;//前端地址proxy_redirect default;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}

步骤3:部署文件
将dist文件夹复制到Nginx目录下的html/文件夹:

nginx-1.28.0
├── html
│ └── dist
│ ├── index.html
│ └── static
└── conf
└── nginx.conf
在这里插入图片描述

四、在nginx-1.28.0目录下打开cmd,输入start nginx ,启动nginx

在这里插入图片描述
在这里插入图片描述

五、常见报错及解决方案
报错1:端口占用
[emerg] bind() to 0.0.0.0:8100 failed (10013: An attempt was made…)
​​解决方案:​​

#查找占用进程
netstat -ano | findstr “:8100”

#终止进程(需管理员权限)
taskkill /pid /f
报错2:路由循环
rewrite or internal redirection cycle while redirect to named location “@router”
​​问题原因:​​
错误配置了SPA路由回退规则

​​修正方案:​​

location / {
try_files $uri $uri/ /index.html; # 删除@router规则
}
报错3:跨域问题
Access-Control-Allow-Origin missing
​​解决方案二选一:​​

​​Nginx添加响应头​​:
location /api/ {
proxy_pass http://backend;
add_header ‘Access-Control-Allow-Origin’ '';
}
​​后端配置CORS​​(推荐):
// Spring Boot示例
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping(“/**”).allowedOrigins("
");
}
};
}
报错4:静态资源404
GET /js/app.js 404 (Not Found)
​​检查要点:​​

确认root路径是否正确
检查文件权限(Linux需chmod -R 755 dist)
避免路径包含中文

六、最终效果验证
访问前端页面:http://192.16.1.58:8100
测试API接口:http://192.16.1.58:8100/api/login
七、总结
通过本文的Nginx配置方案,我们实现了:
✅ 前后端分离部署
✅ 接口代理和跨域解决
✅ SPA路由支持
✅ 多环境快速切换

在这里插入图片描述

相关文章:

  • 零基础学前端-传统前端开发(第三期-CSS介绍与应用)
  • JavaSE-Java简史
  • HTML5 定位网页元素
  • 火山引擎 veFuser:面向扩散模型的图像与视频生成推理服务框架
  • SQL 注入:iBatis与修复
  • 【python】预测投保人医疗费用,附insurance.csv数据集
  • 如何开始HarmonyOS 5与Godot引擎融合开发?
  • 中兴B860AV1.1_晨星MSO9280芯片_4G和8G闪存_TTL-BIN包刷机固件包
  • 如何“调优”我们自身的人体系统?
  • 嵌入式程序存储结构
  • postman调用接口报错401, Unauthorized, Invalid Token. null解决办法
  • 论文笔记 -《MegaBlocks- Efficient Sparse Training with Mixture-of-Experts》
  • 第27节 Node.js Buffer
  • AI中间件,构建大模型应用的标准化接入枢纽
  • ptyhon 导入本地模块 no module named Python Error几种解决方案
  • Docker安装mysql数据库后显示时间问题
  • 若依微服务Openfeign接口调用超时问题
  • 【网页端数字人开发】基于babylonjs+mediapipe实现视频驱动数字人姿态生成
  • 大型语言模型的中毒攻击的系统评价
  • 汽车租赁小程序开发指南
  • 什么叫宣传型网站/网站怎么才能被百度收录
  • 建筑工程ppt模板免费下载/seo营销软件
  • 绍兴公司做网站/搜索引擎提交入口大全
  • 做oa好 还是做网站好/百度账号客服人工电话
  • 福州做网站的个体户电话查询/百度权重5的网站能卖多少钱
  • 亚洲影视传媒有限公司/湖北百度seo排名