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

Nginx部署vue以及转发配置记录

目录

    • nginx配置
    • 部署vue
    • 转发请求到后端,解决跨域问题
    • 外部的nginx需要转发到上面的vue项目配置
    • 问题记录

nginx配置

这是独立的server模块配置,需要在父配置nginx.conf加入这个配置文件。
在父配置nginx.conf文件的http模块内加入。
比如:include conf.d/vue-app.conf;

 server {listen       83;  # 使用不同端口避免冲突server_name  localhost;# 处理 /practice(仅路径本身)location = /practice {return 301 /practice/;}# 1. 配置前端 /practice/* 路径:指向打包后的静态资源,解决 history 模式刷新404location /practice/ {# 静态资源根路径:指向前端打包后的 practice 目录(关键!注意:需与实际路径一致,实际路径与vue项目打包配置相关)# 文件查找路径root C:/nginx/nginx-1.28.0/html/dist; + location /practice/root   C:/nginx/nginx-1.28.0/html/dist; # 访问 /practice/ 时默认加载 index.htmlindex  index.html index.htm;# 核心:history 模式刷新404解决方案——路径不存在时,重定向到 /practice/index.html(关键!注意:需与实际路径一致,实际路径与vue项目打包配置相关)try_files $uri $uri/ /practice/index.html;}# 2. 配置后端接口转发:/practice/api/* → 后端服务(与 vue.config.js proxy 一致),# /practice/api/是vue项目配置转发给后端的url前缀,实际后端项目是接收去掉/practice/api/之后的路径,比如/practice/api/getInfo,后端接收/getInfolocation /practice/api/ {# 转发目标:后端服务地址(需与 vue.config.js 中 baseUrl 一致)# Nginx 的转发逻辑是:将/practice/api/之后的路径部分,拼接到proxy_pass的目标地址后# 客户端请求 http://你的域名/practice/api/user/list# Nginx 会转发到 http://localhost:8080/user/listproxy_pass http://localhost:8080/;# 关键:确保后端能获取客户端真实信息(如 IP、Host)proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

需要配置两个location,一个用来获取静态资源,如js、css等;另一个转发请求到后端,解决跨域问题。

部署vue

 # 1. 配置前端 /practice/* 路径:指向打包后的静态资源,解决 history 模式刷新404location /practice/ {# 静态资源根路径:指向前端打包后的 practice 目录(关键!注意:需与实际路径一致,实际路径与vue项目打包配置相关)# 文件查找路径root C:/nginx/nginx-1.28.0/html/dist; + location /practice/root   C:/nginx/nginx-1.28.0/html/dist; # 访问 /practice/ 时默认加载 index.htmlindex  index.html index.htm;# 核心:history 模式刷新404解决方案——路径不存在时,重定向到 /practice/index.html(关键!注意:需与实际路径一致,实际路径与vue项目打包配置相关)try_files $uri $uri/ /practice/index.html;}

转发请求到后端,解决跨域问题

# 2. 配置后端接口转发:/practice/api/* → 后端服务(与 vue.config.js proxy 一致),# /practice/api/是vue项目配置转发给后端的url前缀,实际后端项目是接收去掉/practice/api/之后的路径,比如/practice/api/getInfo,后端接收/getInfolocation /practice/api/ {# 转发目标:后端服务地址(需与 vue.config.js 中 baseUrl 一致)# Nginx 的转发逻辑是:将/practice/api/之后的路径部分,拼接到proxy_pass的目标地址后# 客户端请求 http://你的域名/practice/api/user/list# Nginx 会转发到 http://localhost:8080/user/listproxy_pass http://localhost:8080/;# 关键:确保后端能获取客户端真实信息(如 IP、Host)proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}

外部的nginx需要转发到上面的vue项目配置

server {listen 9080;server_name localhost;access_log logs/9080_access.log; # 确保日志能记录请求# 处理 /practice(仅路径本身)location = /practice {return 301 /practice/;}# 处理带斜杠的路径转发location /practice/ {# 直接代理到Vue83端口(确保Vue此时能正常访问)proxy_pass http://localhost:83;# 强制传递正确的端口信息proxy_set_header Host localhost:9080;proxy_set_header X-Real-IP $remote_addr;}
}

问题记录

  1. windows使用nginx重新加载命令不生效
    使用nginx.exe -s reload配置不生效
    需要先kill掉进程,再启动。
    kill的命令:
    taskkill /f /im nginx.exe
    启动命令(进到nginx安装目录,cmd):
    start nginx.exe
http://www.dtcms.com/a/415252.html

相关文章:

  • Elasticsearch - 分布式搜索与分析引擎
  • 网站开发者模式下载视频设计网站做多大合适
  • wordpress建企业商城南宁网站的优化
  • 通才机器人策略中的捷径学习:数据集多样性和碎片化的作用
  • 【轮播图】HTML+CSS+JavaScript实现轮播图
  • Low-Overhead Sensing RS Design for Integrated Sensing and Communication (ISAC)
  • 如何快速收录一个网站的信息网页设计与制作作业成品免费
  • MyEclipse在高分辨率显示屏上图标显示太小的解决方案
  • 网站 多语言处理wordpress搜索表单
  • Python 2025:物联网与边缘计算的智能融合新纪元
  • 小迪安全v2023学习笔记(九十讲)—— 小程序篇反编译外在主包分包配置泄露算法逆向未授权
  • 机器学习模型中异常样本、特征的三种常见分类与鉴别方法
  • 有口碑的常州网站建设建设网银怎么提高转账限额
  • 湖南响应式网站哪里有58同城怎么发布信息
  • 《前端开发中常用的快捷键大全》
  • 跳舞游戏做的广告视频网站平度建设局网站
  • 众筹网站建设公司金蝶官网首页
  • 智能汽车安全基石:通过CAS密钥管理系统实现全周期密钥管理与固件签名
  • 基于Python CNN推荐的电影资讯App软件的设计与实现
  • 如何识别网站的建站程序做网站的客户多吗
  • 找人做网站推广wordpress二次开发手册chm
  • 如何降低重复率?卷卷降AI
  • 建网站哪家好新闻wordpress 修改404
  • 基于微信小程序的智能在线预约挂号系统【2026最新】
  • 网站域名管理怎么登陆深圳服务网站建设
  • 前端开发中的事件冒泡
  • 《Rust 程序设计语言》第二十一章:期末项目:构建多线程 Web 服务器
  • 作品 上海高端网站设计wordpress logo 编辑
  • day9.27
  • 做动画人设有哪些网站可以借鉴谷歌chrome浏览器下载