首页 > 系统相关 >nginx反向代理配置,使用正则,三种方案

nginx反向代理配置,使用正则,三种方案

时间:2024-07-24 14:29:47浏览次数:10  
标签:xml uri nginx 正则 反向 location template pass sitemap

方案一:使用变量和通配符

location ~ ^/(template-sitemap\d+\.xml)$ {   proxy_pass https://cdn.processon.io/sitemap/$1; } 

解释:

  • ~ 表示使用正则表达式匹配。
  • ^/(template-sitemap\d+\.xml)$ 匹配以 /template-sitemap 开头,后跟一个或多个数字(\d+),然后以 .xml 结尾的路径。
  • $1 表示正则表达式中第一个捕获组的内容,即匹配到的 template-sitemap1.xmltemplate-sitemap2.xml 等文件名。
  • 这样可以将两个 location 块合并成一个,更加简洁。

方案二:使用变量和 rewrite

location /template-sitemap {
  rewrite ^/template-sitemap(\d+)\.xml$ /sitemap/template-sitemap$1.xml break;
proxy_pass https://cdn.processon.io;
}

解释:

  • rewrite 指令将 /template-sitemap1.xml/template-sitemap2.xml 重写为 /sitemap/template-sitemap1.xml/sitemap/template-sitemap2.xml
  • break 选项表示停止当前 location 块的处理,将请求传递给 proxy_pass 指定的地址。

方案三:使用 map

map $uri $new_uri {
  ~^/template-sitemap1.xml$ https://cdn.processon.io/sitemap/template-sitemap1.xml;
  ~^/template-sitemap2.xml$ https://cdn.processon.io/sitemap/template-sitemap2.xml;
}

server {
  location ~ ^/template-sitemap\d+\.xml$ {
  proxy_pass $new_uri;
  }
}

解释:

  • map 块定义了一个变量 $new_uri,根据 $uri 的不同值映射到不同的目标地址。
  • location 块中,使用正则表达式匹配 /template-sitemap\d+\.xml,并通过 proxy_pass 指令使用 $new_uri 变量来代理请求。

选择适合的方案

  • 方案一 适合只有少量相似路径需要代理的情况,简单直接。
  • 方案二 可以处理更多复杂的重写规则,灵活性较高。
  • 方案三 对于更多的路径映射,可以通过 map 块更清晰地管理映射关系。

根据具体情况和需求,选择最适合的优化方案。

标签:xml,uri,nginx,正则,反向,location,template,pass,sitemap
From: https://www.cnblogs.com/gaoyanbing/p/18320842

相关文章

  • 使用正则表达式和 Polars 有效解析公式
    我正在尝试解析一系列数学公式,并且需要使用Python中的Polars有效地提取变量名称。Polars中的正则表达式支持似乎很有限,特别是对于环视断言。有没有一种简单、有效的方法来解析公式中的符号?这是我的代码片段:importreimportpolarsaspl#Definetheregexpatte......
  • 【Python正则表达式】:文本解析与模式匹配
    文章目录1.正则表达式2.re模块3.修饰符3.元字符3-1字符匹配元字符3-2重复次数限定元字符3-3字符集合匹配元字符3-4分组元字符3-5边界匹配元字符3-6字符类别匹配元字符4.技巧4-1贪婪与非贪婪5.案例1.正则表达式正则表达式面向什么样的问题?1、判断一个字......
  • 正则表达式
    https://www.jianshu.com/p/3dd137ba2875?utm_campaign=maleskine&utm_content=note&utm_medium=seo_noteshttps://blog.csdn.net/lovedingd/article/details/128249121#匹配0-100之间数字re.match("[1-9]?\d$|100","08")#匹配邮箱163/126/qqre.......
  • 解锁Nginx日志的宝藏:GoAccess——你的实时、交互式Web日志分析神器!
    在当今数字化的时代,网站的流量和用户行为数据就像是一座蕴藏着无尽秘密的宝藏。而如何有效地挖掘和分析这些数据,成为了许多网站管理者和开发者头疼的问题。GoAccess,一款开源的实时Web日志分析工具,或许能为我们提供一扇窥探这些秘密的窗口。GoAccess:你的流量分析好帮手GoAccess......
  • Texstudio正反向搜索-配合sumatraPDF
    选项->设置->命令,然后找到外部pdf查看器,输入代码:"C:\Users\Kevin\AppData\Local\SumatraPDF\SumatraPDF.exe"-forward-search"?c:am.tex"@-inverse-search"C:\ProgramFiles\texstudio\texstudio.exe%%f-line%%l""?am.pdf"......
  • nginx如何配置图片缓存时间
    问题解释:Nginx是一个高性能的Web服务器和反向代理服务器,可以用于配置图片缓存时间。这样可以有效地减少服务器的负载,提高用户访问速度。答案:要在Nginx中配置图片缓存时间,需要修改Nginx配置文件(通常为nginx.conf或者在conf.d或sites-available目录下的配置文件)。以......
  • nginx的ssi
    Nginx中的服务器端包含(SSI)#Nginx在处理缓存或将(动态)文件包含到静态文件中时,服务器端包含是一个非常方便的功能。下面介绍如何使用它并配置Nginx以启用SSI的强大功能。由MarkvanEijk于2023年12月7日发布 ·阅读时间2分钟什么是服务器端包含(SSI)S......
  • 【数字IC】——GVIM正则表达式
    1、正则表达式概述正则表达式(RegularExpression,regex/regexp)是一种用于匹配和操作文本的强大工具,它是由一系列字符和特殊字符组成的,用于描述要匹配的文本模式。GVIM、TCL中都会使用到正则表达式,其中TCL中的使用方法已在之前介绍过,大家可以参考我这篇博客【数字IC-TCL语言......
  • OLOR:已开源,向预训练权值对齐的强正则化方法 | AAAI 2024
    随着预训练视觉模型的兴起,目前流行的视觉微调方法是完全微调。由于微调只专注于拟合下游训练集,因此存在知识遗忘的问题。论文提出了基于权值回滚的微调方法OLOR(OnestepLearning,OnestepReview),把权值回滚项合并到优化器的权值更新项中。这保证了上下游模型权值范围的一致性,有......
  • Nginx:高性能 Web 服务器的卓越之选
    Nginx在当今数字化的时代,Web服务器的性能和效率至关重要。Nginx作为一款备受赞誉的高性能Web服务器,正发挥着举足轻重的作用。Nginx是一款轻量级、高性能、高并发的Web服务器和反向代理服务器。它以其出色的性能和稳定性在众多服务器中脱颖而出。核心特点高并发处......