nginx部署时的路径配置问题

ops/2024/9/20 2:07:40/ 标签: nginx, 运维

背景

一直觉得程序员敲代码就行了,结果前端一打包部署就给我打回原形了。每回部署都失败,然后我都形成惯性了,一到nginx部署我就摇人,我都不好意思了。
这一次的问题是原前端代码的基础路径为‘/’,现在要改成‘/abc’,即原来访问首页路径是‘http://localhost/index’,现在变成了‘http://localhost/abc/index’,我们这是一个vite项目,在代码的配置文件的前缀中已经修改好了这个前缀,并且已经打包好了(其实我觉得这个应该只用在nginx的配置文件中修改,而不应该在代码的配置文件中修改,否则改一次前缀就要在代码的配置文件中改一下,然后重新打包,然后又在nginx的配置文件中修改一下。但是好处也有一个,就是打包好的文件都在名为abc的文件夹目录下,直接把这个abc文件夹复制到nginx的html目录下即可。鉴于我低劣的前端水平,就先不质疑这个了)。现在就是要修改ngxin的配置以适应新的路径,但我立刻就改错了。

解决

    # 前端资源(实际是,避免出现刷新404,用/)location / {root   html;index  index.html index.htm;try_files  $uri $uri/ /abc/index.html /abc/lowcode/index.html;add_header 'Access-Control-Allow-Credentials' true;add_header 'Access-Control-Allow-Origin' * always;add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';}# 后端接口 location /abc/server {proxy_pass http://127.0.0.1:8081;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;# 清除前缀rewrite ^/abc/server(/.*)$ $1 break; add_header 'Access-Control-Allow-Credentials' true;add_header 'Access-Control-Allow-Origin' * always;add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';}

其实我主要是对nginx配置的各个字段不熟悉,上述这些字段我以前都看过,但是时间久了不看就不知道时干嘛的了。而且我对nginx这个技术也不是很熟悉,毕竟部署这个工作我也很少接触。

上述这段我当时首先就是在前端资源的location这里犯了错,我把这给改成了’/abc’,然后我在index和try_files的文件前都加了‘/abc’。其实location字段后面的这个路径是用来匹配的,大括号里的root指定了nginx的根目录,也就是我把打包后的dist目录里的东西复制到的地方,try_files是用来解决history路由不能跳转的问题,在vue-router官网有介绍 。try_files的路径和root目录是拼接在一起的,正好就对应了nginx的根目录下打包后的路径。

感受

感觉自己对这块还不是很熟,以后有时间还是要把这块好好学下。

参考

参考1
参考2


http://www.ppmy.cn/ops/110656.html

相关文章

大数据-133 - ClickHouse 基础概述 全面了解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

ubuntu内核升级后的问题修复

文章目录 需求当前环境禁止内核更新安装内核修复/usr/include/dlocate 测试 需求 升级后的常见问题 驱动程序不兼容: 新内核版本可能导致某些硬件驱动程序不再兼容,尤其是专有驱动程序或第三方驱动程序。启动问题:内核更新可能导致启动问题,例如无法启动…

第四章 类和对象 实践与练习(1)

综合练习 1 简易计算器 使用静态方法模拟一个只能进行两个数加减乘除的简易计算器。 static double a,b;public static void main(String[] args) {简易计算器01 sum new 简易计算器01();//创建一个对象System.out.println("4.4加上7.11的结果:"sum.add…

[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):138 标注数量(xml文件个数):138 标注数量(txt文件个数):138 标注类别…

ModbusTCP/RTU转Ethernet/IP(CIP)-Modbus设备与罗克韦尔AB的PLC之间通讯

IGT-DSER智能网关模块支持西门子、三菱、欧姆龙、罗克韦尔AB等各种品牌的PLC之间通讯,同时也支持PLC与Modbus协议的工业机器人、智能仪表、变频器等设备通讯。网关有多个网口、串口,也可选择WIFI无线通讯。无需PLC内编程开发,只要在IGT-DSER智…

shader 案例学习笔记之将坐标系分成4个象限

代码: _st * 2.0;float index 0.0; index step(1., mod(_st.x,2.0)); index step(1., mod(_st.y,2.0))*2.0; 示意图: 计算左下角 计算右下角 计算左上角 计算右上角 最后结果示意: 坐标系被分成了4个单元格,每个单元格都有…

Kafka高吞吐量的原因

文章目录 生产者(写入数据)顺序写入Memory Mapped Files 消费者(读取数据)Kafka是如何巧妙设计的? 总结 众所周知kafka的吞吐量比一般的消息队列要高,号称the fastest,那他是如何做到的,让我们…

产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

在当今高速发展的信息技术领域,特别是对于那些致力于前沿科技探索与实践的高校而言,拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台(Data Network Development Platform,简称DNDP)&am…

[WEBPWN]BaseCTF week1 题解(新手友好教程版)

WEB A Dark Room 这道题的考点是查看网页源代码 网页源代码这里看到的是网页的html css js在用户浏览器上执行的代码 有时候很多铭感信息,或者关键信息。 查看网页源代码的几种方式 1 右键点击查看网页源代码 2 F12 3 Ctrl U 快捷键 HTTP是什么 HTTP&#x…

ip属地河北切换北京

我们知道,每当电脑或手机连接网络时,都会分配到一个网络IP地址,这个IP地址通常与设备所在的地区网络相关联。然而,出于业务或个人需求,有时我们需要将本机的IP地址切换到其他城市。例如要将IP属地河北切换北京&#xf…

主流日志框架Logback与Log4j2

一、Logback 1、介绍 Logback是由log4j创始人设计的又一个开源日志组件。 Logback当前分成三个模块:logback-core,logback- classic和logback-access logback-core是其它两个模块的基础模块,类似与springframework logback-classic是log…

项目——负载均衡OJ

项目要实现的一个整体的功能: 编写一个在线OJ网络服务器,只实现类似 leetcode 的题目列表在线编程功能 项目宏观结构: Oj服务器在收到提交的代码时,把代码负载均衡的选择发送给其他几个编译与运行服务器去编译运行代码,判断代码的编译运行结…

python打包工具Nuitka使用介绍

首先说一下,为什么我选择Nuitka而不是pyinstaller? Nuitka相对pyinstaller有以下优点: 1. Nuitka能够对 Python 代码进行深度分析,并在此基础上生成优化后的 C 语言代码会针对生成的 C 代码进行更多的优化,这意味着生…

java面试题-Sql 语句的执行顺序

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 Sql 语句的执行顺序 fr…

Ubuntu22.04安装nginx

1.安装nginx 首先,更新你的包索引: sudo apt update 安装必要的软件包以允许apt通过HTTPS使用仓库: sudo apt install ca-certificates curl gnupg lsb-release 添加Nginx官方的GPG密钥: curl -fsSL https://nginx.org/keys/ng…

简单计算机网络概念

1.浏览器过程 输入url,解析url 1.协议http、https的区别;HTTPS就是在HTTP与TCP之间增加了SSL/TSL安全传输层 2.格式:协议//主机:端口/路径; 3.HTTP版本:1.0和1.1 4.HTTP/1.1:1. 持久连接:为了…

下一代 AI 教育:知识图谱RAG + 多智能体,听老师的话没前途,让老师听你的才是正道

下一代 AI 教育:知识图谱RAG 多智能体,听老师的话没前途,让老师听你的才是正道 下一代 AI 教育:基于最本质的用脑方式学习 理解 记忆?学习的 3 个层次文科:关联理解 关联分析 关联记忆秒背古诗古文商业…

Redis之pipeline与事务

前言 Redis使用的是单reactor网络模型,也就是io多路复用非阻塞io的异步处理流程(注册事件,在事件循环callback处理事件)。我们可以将每个连接抽象看成一个pipe,哪个pipe中的数据先满就先处理。注意,单react…

数组与贪心算法——215、75、324、517(3中1难)

215. 数组中的第K个最大元素(中等) 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 解法…

CSP-J 算法基础 排序算法的基本概念

文章目录 前言排序算法的稳定性稳定排序算法的例子不稳定排序算法的例子总结 有序度和逆序度有序度(Sortedness)逆序度(Inversion Count)计算逆序度的例子 总结 满有序度计算公式解释举个例子总结 总结 前言 排序算法是计算机科学…