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

【实战指南】前端项目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路由支持
✅ 多环境快速切换

在这里插入图片描述

http://www.xdnf.cn/news/13464.html

相关文章:

  • 在C# 中使用建造者模式
  • 算法题(167):FBI树
  • Oracle日志体系和遇到问题后日志排查路径
  • 行为模式-责任链模式
  • 进行性核上性麻痹健康护理指南:全方位照护之道
  • Pytorch 的编程技巧
  • Java八股文——Spring「Spring 篇」
  • 5.4.2树、森林与二叉树的转换
  • 今日行情明日机会——20250611
  • Android GreenDAO 通过 Key 查询数据库数据慢问题优化
  • 13.自治系统路由计算题
  • Node.js:开启现代服务器端编程的新篇章
  • h5fortran 简介与使用指南
  • 新能源知识库(36)什么是BMU
  • 51LA数据分析遇瓶颈?免费统计工具——悟空统计
  • 大话软工笔记—工程分解
  • GlusterFS分布式文件系统
  • 【Keepalived】Keepalived-2.3.4恢复对RHEL7的支持
  • 第七章: SEO与渲染方式 三
  • (十一)优化算法(Optimization):深度学习训练中的收敛性分析与泛化理论
  • 鹰盾视频加密器Windows播放器AI溯源水印技术方案解析
  • ros2--Sophus
  • “新液冷”破题“智算热”,数字经济低碳化发展新解
  • 【Linux】Linux 操作系统 - 22 , 软硬链接详解 !
  • 104.解决在流式回答功能实现之后上传附件功能失效bug之前端处理
  • DAY 28 类的定义和方法
  • 三代社保卡全字段识别-社保卡识别软件-社保卡识别接口集成
  • 结合redis实现文件分片秒传断点续传
  • Linuxkernel学习-deepseek-2
  • Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡