nginx改写路由的一个小思路

5分钟用Nginx搭建API网关原型:微服务路由实战指南 在微服务架构中,API网关作为核心基础设施,承担着统一入口、路由分发、负载均衡等关键职责。其基本原理是通过反向代理机制,将客户端请求根据预设规则转发至对应的后端服务,从而简化客户端调用、统一安全策略并提升系统可维护性。从技术价值看,网关实现了业务逻辑与网络通信的解耦,是构建高可用、可扩展分布式系统的基石。常见的应用场景包括微服务聚合、身份认证、流量控制与监控分析等。本文聚焦于利用广泛部署的Nginx快速构建网关原型,通过配置location匹配与proxy_pass指令,演示如何实现请求路由与URI重写,为 阅读详情
环境:

fastadmin(tp5) + nginx

问题简介:

域名: www.abc.com
介绍: 这是一个地区分类信息的站点,每一个地区的内容不互通,a地区只显示a地区的内容,b地区只显示b地区的内容.
问题: 如何通过域名来识别是不同的地区? (信息系统,不同地区的页面是相同的,只是信息不同,希望通过域名来识别.)
示例:
www.abc.com/a/1.html 显示 a 地区的信息
www.abc.com/b/1.html 显示 b 地区的信息
www.abc.com/c/1.html 显示 c 地区的信息

解决思路:

我们想要的是 将 www.abc.com/a/1.html 中的 /a 转为 www.abc.com/1.html?city=a 以此作为参数识别.
那么利用 Nginx的重写,就可以达到目的,如下

location /shanghai {
		rewrite  /shanghai(.*)  /$1?city=shanghai  last;   break;
}

location /beijing {
		rewrite  /beijing(.*)  /$1?city=beijing  last;   break;
}
链接演示

如上, 如果我们打开
打开链接: http://www.abc.com/shanghai/test?a=1&b=2
实际链接: http://www.abc.com/test?a=1&b=2&city=shanghai

总结

利用 nginx 的路由改写功能加上tp5自身的路由来实现这个功能.


vue项目打包来实现不同的文件夹访问不同的地区

利用 uniapp 来编写项目,然后打包的时候,选择好目录,例如 /beijing/, 在项目中,可以利用 window.location.pathname 来获取到, 例如 /beijing/ 或 /beijing. 以此来作为参数来判断不同的地区.

打包上线的时候, nginx 中也要做相应的设置, 因为我们为了去掉 # 号, 而选择了 history 模式,所以需要设置 nginx的伪静态,如下

location /shanghai {
  try_files $uri $uri/ /shanghai/index.html;
}

location /beijing {
  try_files $uri $uri/ /beijing/index.html;
}
Vue+SpringBoot项目部署:解决SPA路由白屏与Nginx配置全攻略 单页应用(SPA)是现代前端开发的主流模式,其核心原理是通过前端路由动态管理视图,而非每次请求都从服务器获取新页面。这种架构在提升用户体验的同时,也带来了部署上的挑战:当SPA部署到Nginx等静态文件服务器时,访问非根路径(如/about)会因服务器找不到对应的物理文件而返回404,导致应用白屏。其技术价值在于实现了前后端彻底解耦,前端独立部署,后端专注API。典型的应用场景是Vue、React等框架构建的企业级后台管理系统或内容型网站。要解决此问题,关键在于配置Nginx的`try_files`指令,将 阅读详情

相关推荐

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 9001

Nginx 重写功能

目录location模块1.**Nginx常见模块**2.**location****2.1一般分为普通和正则**2.2 **location 常用的匹配规则**2.3 **location优先级排列说明:**2.4 location 示例1**REWRITE**模块1.1rewrite功能1.2Rewrite 跳转场景1.3Rewrite 跳转实现1.4Rewrite 执行顺序如下1.5语法格式1.6 Rewrite举例1.6.11.6.2.基于客户端IP 访问跳转1.6.3基于旧域名跳转到新域名后面加目

STARDEIT的博客 2935

【自动驾驶】控制算法(十)深度解析车辆纵向控制 | Carsim 油门刹车标定表的制作...

写在前面: ???? 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。???? ???? 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 ????感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~文章目录引言一、油门标定原理1.1 油门与速度、加速度的关系1.2 油门控制曲面模型的构建二、油门标定表的制作流程...

qq_35485206的博客 2139

K8S中的ingress实验

我们可以使用ingress,通过域名访问我们的pod 创建deployment 名叫web kubectl create deployment web --image=nginx 暴露,生成Service kubectl expose deployment web --port=80 --target-port=80 --type=NodePort 建立ingress controller ingress-controller.yaml,内容如下 apiVersion: v1 kind: Namespa

huangbaokang的博客 589

如何在R中高效安装ropls及其依赖包

本文详细介绍了在R语言中高效安装ropls包及其依赖的完整流程。作为Bioconductor生物信息学分析包,ropls的安装需通过BiocManager管理器进行。文章提供了标准安装步骤、跨系统避坑指南及安装后验证方法,帮助用户解决R版本、编译环境和网络镜像等常见问题,确保代谢组学数据分析工具顺利部署。

efc123456的博客 908

小米手机Magisk解锁与Root完整指南:从Bootloader到模块管理

Android系统Root权限获取是设备深度定制的核心技术之一,其核心原理在于通过修改系统启动流程获取超级用户权限。Systemless Root技术通过动态挂载修改,在不触碰系统分区的前提下实现功能注入,既保证了系统完整性,又能绕过完整性检测。这一技术为设备带来了极高的可定制性,用户可以通过模块化方式增强系统功能、修改UI界面或启用隐藏特性。在小米手机生态中,由于官方提供了完整的Bootloader解锁通道,结合Magisk的无系统修改Root方案,使得安全可控的深度定制成为可能。本文聚焦于Bootloa

weixin_29164185的博客 333

Nginx 根据不同域名做路由转发

需求 假设现在有一个顶级域名ouou.com和三个二级域名default.ouou.com,blog.ouou.com,white.ouou.com,这4个域名都跟同一个IP进行绑定。三个二级域名分别对应三个不同的项目,我们希望通过不同二级域名访问服务器,用Nginx做路由转发,到达不同的项目首页。默认顶级域名与default.ouou.com到达同一个页面。 环境 Nginx:1.20.1 Linux操作系统:CentOS7 配置host文件 本文实验环境在虚拟机上进行,如果使用服务器,应该用真实域名绑定

路漫漫其修远兮,吾将上下而求索 1万+

Python爬虫抓取淘宝商品详情页信息:从入门到高级技术应用

通过本篇博客,我们了解了如何使用Python爬虫抓取淘宝商品详情页的信息,如何使用requests和Selenium抓取静态和动态内容,如何应对淘宝的反爬虫机制,如何将抓取的数据保存到CSV文件等。随着爬虫技术的不断发展,开发者可以根据需要选择合适的工具和技术,如使用分布式爬虫框架提高抓取效率,或者利用OCR技术处理验证码等问题。在进行淘宝爬虫时,需要注意遵循相关法律法规和平台的爬虫政策,避免对平台造成过度的负担或侵犯其合法权益。

2201_76125261的博客 461

Nginx重写功能(rewrite与location)

直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网。这里是直接转发给后端应用服务器了,也可以是一个静态首页}rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,例如:id=1&u=str 只对/kgc/index.php重写。

怎么也想不出名字的博客 977

2026年迈瑞医疗嵌入式岗位面试题集(含参考答案)

文章摘要 本文总结了嵌入式开发面试中的30道题目,涵盖7大模块:嵌入式硬件与底层驱动、C/C++语言基础、操作系统与多线程编程、网络通信协议、数据结构与算法、开发工具与调试能力、综合素养与职业认知。重点解析了I²C通信协议的工作原理、速率选择及异常排查方法;USB的报文协议与四种传输类型及其适用场景;硬中断与软中断的区别及设计注意事项;字节序的概念与处理方法;以及C++中static和const关键字的核心作用。内容深入实用,适用于嵌入式开发者的技术提升与面试准备。

Open 52

STM32Cube高效开发教程<基础篇>(一)----概述

一、 STM32系列器件和开发工具发展历史声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。本专栏博客参考《STM32Cube高效开发教程(基础篇)》,有意向的读者可以购买正版书籍辅助学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。一、 STM32系列器件和开发工具发展历史。

我的博客 187

Nginx location(路径替换)

Nginx location(路径替换) 页面访问路径: 其中ip1和port1 为nginx的IP和端口,ip2和port2为代理后端服务的IP和端口 http://ip1:port1/x1/x2/search/search_tips?text= 想要实现,在nginx中如果匹配到x1/x2后; 将真实的访问导向到ip2:port2的search/search_tips这个服务 http://ip2:port2/search/search_tips?text= 所以上述的请求,采用第二种..

qq_16481385的博客 1万+

广东省道路工程检测练习试题(单选题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。A.不低于75%B.不低于80%C.不低于85%D.不低于90%答案:B2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( )A.1B.2C.3D.4答案:A3.根据《城镇道路工程施工与质量验收规范》,在分部工程中,根据工种、材料、施工工艺等划分的是( )A.单位工程B.分项工程C.分部工程D.工序工程答案:B4.根据《城镇道路工程施工与质量验收规范》,土方路基压实度的检测频率为每1000m每压实层抽检( )

ZShy001238的博客 684

nginx代理之后,访问地址报403,排查思路

顺序逐一排查,重点验证请求头、路径匹配、认证信息、SSL 及防火墙,基本能定位。前置机用nginx服务代理服务之后,访问代理之后的地址报错nginx。错误,排查之后因为路径不匹配导致。若仍未解决,可开启 Nginx 调试日志()和后端应用日志,追踪请求完整流程。」,带你学习更多实战经验!

专注网络安全、Linux、K8s等技术分享,愿你在云计算运维领域不断进阶,欢迎随时交流。 3520

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Express + Nginx 部署Vue实现多路由跳转

场景如下:在 App客户端内有两种H5独立界面 商城 和 推荐界面,正常来说两个页面有两种路由 http://127.0.0.1/shop 和 http://127.0.0.1/recommend;但是Vue是单页面应用,如果直接将打包好的dist文件扔到服务器用Nginx指向对应目录的index.html的话,那就只能有一个入口;为了解决这种情况,搜集了下其他博客以及向同事讨教,记录下利用Express当作http服务器的解决思路; 服务器环境配置 以windows为例(最好还是linux)先安装需要的环

孙先森的博客 2194

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

解析 Ingress-Nginx 故障:排查思路与方法

解析 Ingress-Nginx 故障:排查思路与方法

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 1745

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

flutter打包web\nginx\docker运行子路由访问404问题解决

下面是我问deepseek时的问题deepseek给了我一些思路,虽然没有解决问题,但是直接让我缩小了问题的排查范围,可以的。

周周健康的博客 914

Nginx动态路由的新姿势:使用Go取代lua

导语:在Nitro 中, 我们需要一款专业的负载均衡器。 经过一番研究之后,Mihai Todor和我使用Go构建了基于Nginx、Redis 协议的路由器解决方案,其...

weixin_45583158的博客 650

Nginx 打造轻量级 API 网关:零代码实现路由、认证与限流

Nginx作为轻量级API网关解决方案,兼具高性能与灵活性。文章详细介绍了如何利用Nginx实现API网关的核心功能,包括路由转发、统一入口、限流控制等。通过示例配置展示了服务拓扑规划与具体实现步骤,并提供了进阶功能扩展建议。针对中小型项目,Nginx基础版即可满足80%的常规需求,同时保持零依赖、毫秒级响应优势。文章还包含安全优化方案和可视化架构图,帮助开发者快速搭建轻量高效的API网关。这种方案特别适合资源有限但需要稳定网关功能的中小型项目。

软件行业技术文化交流。 2096

Nginx 如何解决单页应用 History 模式路由的 404 难题?

单页应用的 History 模式路由带来了流畅的用户体验,但也引入了服务器配置的特殊需求。Nginx 的通过简单直观的逻辑,完美解决了路由刷新 404 的问题。这个配置看似简单,却体现了前后端协同设计的智慧 —— 让专业的角色做专业的事,才能构建出稳定可靠的应用系统。如果你正在开发单页应用,不妨按照这个配置试试,相信能彻底解决路由相关的服务器问题。如果遇到特殊场景需要调整,也可以基于这个核心逻辑进行扩展。

wsj__WSJ的博客 919

nginx 加路由时报错_Nginx自定义模块编写:根据post参数路由到不同服务器

Nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,Nginx默认的配置规则就捉襟见肘了,但是没关系,Nginx提供了强大的自定义模块功能,我们只要进行需要的扩展就行了。我们来理一下思路,我们的需求是:Nginx根据http包体的参数,来选择合适的路由在这之前,我们先来考虑另一个问题:在Nginx默认配置的支持下,能否实现服...

weixin_28849465的博客 389

解决:配置NGINX H5页面出现404错误

背景: 在配置项目前端客户端时,由于页面使用NGINX环境实现,由于在测试环境有一套配置,直接复制过来使用,服务启动的时候。能正常出现页面,但是在刷新登录页面时候出现404报错。刚开始以为配置路径有误,但是发现测试环境一样配置,没有问题,而且发现域名接口后多了个路径。 打开网页开发者模式查看信息,发现访问路径由/h5变成了/h5/login。查看日志找不到login这个文件所以报404。 感觉...

云间小憩 7515

Nginx Server与Location匹配优先级详解:从原理到高可用路由实践

Nginx的请求路由本质是两级匹配机制:先通过IP端口和Host头确定Server块,再基于URI路径选择Location块。其核心原理并非简单顺序匹配,而是遵循严格优先级的树状决策流程——Server选择含三次筛选(IP+Port硬匹配→server_name语义匹配→default_server兜底),Location匹配则执行五步决策树(URI标准化→最长前缀匹配→=精确优先→^~非正则终止→正则回溯)。这种设计兼顾高性能与语义准确性,使Nginx能支撑日均千万级API网关场景。理解该机制对解决404

weixin_34414650的博客 480

SPA部署404问题解析:Nginx配置与前端路由的深度适配

在Web应用部署中,静态资源服务与前端路由的适配是常见挑战。其核心原理在于服务器如何将请求路径映射到物理文件,以及如何处理不存在的文件请求。Nginx作为高性能Web服务器,通过try_files指令提供了灵活的请求处理机制,这对于现代单页应用(SPA)的部署至关重要。SPA通常使用History模式路由以提升用户体验和SEO效果,但这要求服务器能正确回退到入口文件(如index.html),由前端框架接管路由。一个典型的应用场景是部署Vue或React应用时,刷新非根路径页面出现404错误。通过合理配置t

weixin_30596165的博客 360

WebSocket :Nginx+WebSocket内部路由策略推送服务器的实现(附可生产环境应用代码)

目录目录 项目背景 实现思路 源码地址 可优化的点 Nginx配置及说明1.项目背景前几天写了一篇WebSocket推送的博客:WebSocket :用WebSocket实现推送你必须考虑的几个问题 支持的连接数大概几千个,具体数量依赖于tomcat能并发的线程数,但很多时候生产环境应用的话几千个肯定是不行的,所以本问介绍Nginx+WebSocket的实现思路及代码.2.实现思路依照设计模式中的

shangmingtao的博客 7262
上一篇: uni-app 常用笔记
下一篇: uniapp-previewImage循环使用的一个小问题
自娱自乐22
博客等级 码龄18年 241粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值