Nginx 如何根据swagger关键字屏蔽页面

这篇具有很好参考价值的文章主要介绍了Nginx 如何根据swagger关键字屏蔽页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、知识回顾

1.什么是 location

Nginx 中通过根据 location 块的规则来将匹配到的 URL 请求进行一系列操作,最常见的就是进行代理。Nginx 中一个 Server 可以有多个 location 配置,当请求在与多个 location 匹配时,会根据一定的 location 匹配规则和优先级来确定具体将请求分发到哪个 location。

2.location 语法

# |指令|  |前缀|   |匹配的网站网址|  |匹配URI之后要执行的配置段|
location [=|^~|~|~*] /uri/ { ... }

3.location 的匹配规则

匹配规则 说明
没有前缀 普通匹配(遵循最大前缀匹配规则)。
= 精确(严格)匹配。
~ 区分大小写的正则匹配。
~* 不区分大小写的正则匹配。
^~ 匹配 URI 以某个常规字符串开头,^ 为正则表达式中的开头。
!~ 区分大小写不匹配的正则。
!~* 不区分大小写不匹配的正则。
/ 通用匹配,任何请求都会匹配到。

由此我们可以根据是否按照正则匹配将 location 的匹配规则划分为两类:

  • 普通location: 包括 没有前缀=^~@ 四种。其中 @ 时用作服务内部的一种转发行为,很少用。
  • 正则location: 包括 ~~*!~!~* 四种。

4.优先级排序

具体的匹配顺序生效规则如下:

Nginx 如何根据swagger关键字屏蔽页面,# Nginx,nginx,java,服务器

  1. 普通 location 与正则 location 之间的匹配:选择出 “普通 location” 的最大前缀匹配结果后,还需要继续搜索正则 location。如果继续搜索的 “正则 location” 也有匹配上的,那么 “正则 location” 覆盖 “普通 location” 的最大前缀匹配。
  2. 普通 location 之间:最大前缀匹配。
  3. 正则 location 之间:按照正则 location 在配置文件中的物理顺序(编辑顺序)匹配,并且只要匹配到一条正则 location,就不再考虑后面的。
  4. 以上 “普通 location” 指的是 没有前缀@=^~ 在匹配到结果后就不再需要继续匹配 “正则 location” 了(^ 表示 “非”,~ 表示 “正则”,字符意思是:不要继续匹配正则)。
    • =^~ 共同点:都可以阻止继续匹配 “正则 location”。
    • =^~ 不同点:^~ 依然遵守 “最大前缀” 匹配规则,然而 = 不是 “最大前缀”,而是必须是严格匹配(exact match)。

所有类型location存在时,优先级排序为:

=匹配 > ^~匹配(不是用正则,最大前缀匹配) > 正则匹配 > 没有前缀(最大前缀匹配) > 默认(/)

location / {} 和 location = / {} 的区别:

  • location / {} 遵守普通 location 的最大前缀匹配,由于任何 URI 都必然以 / 根开头,所以对于一个 URI,如果有更 specific 的匹配,那自然是选这个更 specific 的,如果没有,/ 一定能为这个 URI 点背(至少能匹配到 /)。也就是说,location / {} 有默认配置的意思,其他更 specific 的配置能 orverwrite 这个默认配置(这也是为什么我们总能看到 location / {} 这个配置的原因)。
  • location = / {} 遵守的是 “严格精确匹配 exact match”,也就是只能匹配 http://host:port/ 请求,同时会禁止继续搜索正则 location。因此如果我们只想对 “GET /” 请求配置作用指令,那么我们可以选 location = / {},这样能减少正则 location 的搜索,因此效率比 location / {} 高(注:前提是我们的目的仅仅只想对 “GET /” 起作用)。

二、如何根据关键字筛选请求

1.实现方案

可以利用以下四种匹配规则实现:

匹配规则 说明
~ 区分大小写的正则匹配。
~* 不区分大小写的正则匹配。
!~ 区分大小写不匹配的正则。
!~* 不区分大小写不匹配的正则。

例如,我想根据 swagger 关键字进行筛选,将带有 swagger 的请求全部拦截,我们可以这么实现:

location ~* swagger {
    return 404;
}

2.测试结果

访问地址:http://localhost:8081/swagger-ui.html

Nginx 如何根据swagger关键字屏蔽页面,# Nginx,nginx,java,服务器

整理完毕,完结撒花~ 🌻





参考地址:

1.Nginx之location匹配规则,https://www.cnblogs.com/gaoyanbing/p/16915446.html文章来源地址https://www.toymoban.com/news/detail-620294.html

到了这里,关于Nginx 如何根据swagger关键字屏蔽页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI绘画Midjourney如何写关键字?

    Midjourney 是一款强大的 AI 图像生成工具,只需要简单的自然语言描述就能快速生成图像。 与其他AI图像生成相比,Midjourney学习成本更低,生成速度更快,风格更多样化,是现在接触AI绘画最好的方式之一了。 Midjourney生成图片提示词大致的分为:主体、动作、场景、视角、光

    2024年02月12日
    浏览(41)
  • 如何搭建关键字驱动自动化测试框架?

    前言 那么这篇文章我们将了解驱动测试又是如何驱动自动化测试完成整个测试过程的。驱动框架是一种功能自动化测试框架,它也被称为表格驱动测试或者基于动作字的测试。驱动的框架的基本工作是将测试用例分成四个不同的部分。首先是测试步骤(

    2024年02月11日
    浏览(50)
  • linux如何查询目录文件中是否包含某个关键字

    在 Linux 系统中,可以使用 grep 命令来查询目录文件中是否包含某个。 例如,如果你想查询当前目录下的所有文件中是否包含 \\\"keyword\\\",可以使用以下命令: 在这个命令中, . 表示当前目录, -r 表示递归地搜索目录下的所有文件。 如果有任何文件包含 \\\"k

    2024年02月11日
    浏览(50)
  • 如何在Linux系统上实时监控带有关键字的日志

    在Linux系统上,实时监控日志是一个非常常见的需求,特别是在开发和运维工作中。通过实时监控日志,我们可以快速发现系统出现的问题,提高问题定位和解决的效率。下面介绍如何使用一些Linux命令实现实时监控带有的日志。 在Linux系统中,如果你想实时观察一个日

    2024年02月16日
    浏览(40)
  • 如何基于运维事件中心通过 logstash 进行日志关键字监控

    日常运维过程中,很多场景都需要对日志进行监测,以便第一时间发现应用/业务相关异常,这是一种比较常见的监控需求,所以也有很多方法可以实现告警。对于简单的告警可以通过一些传统的监控工具实现,但对于体量和业务是非常复杂的中大型企业来说,在

    2024年02月20日
    浏览(35)
  • js中this关键字的作用和如何改变其上下文

    一、this 的作用 JavaScript 中的 this 引用了所在函数正在被调用时的对象。在不同的上下文中, this 的指向会发生变化。 在全局上下文中, this 指向全局对象(在浏览器中是 window 对象,在 Node.js 中是 global 对象)。 在函数中, this 指向调用该函数的对象。如果该

    2024年02月07日
    浏览(39)
  • C++之深入解析如何通过extern “C”关键字支持C语言

    C++ 语言的创建初衷是 “a better C”,但是这并不意味着 C++ 中类似 C 语言的全局变量和函数所采用的编译和连接方式与 C 语言完全相同。作为一种欲与 C 兼容的语言, C++ 保留了一部分过程式语言的特点(被称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变

    2024年02月02日
    浏览(41)
  • linux如何查询某个关键字所处在哪个文件夹的哪个文件下

    linux如何查询某个所处在哪个文件夹的哪个文件下 linux如何查询文件夹中的某个文件中的 你要知道是什么 在 Linux 中,可以使用 grep 命令来查询文件夹中的某个文件中的。 grep 命令的语法格式如下: 其中,OPTIONS 是可选的命令选项,PATTERN 是需要搜索

    2024年02月09日
    浏览(54)
  • 什么是LSI关键字以及如何使用它们来提升您的SEO效果

    SEO 专业人员使用各种技术和策略来提高搜索引擎排名。虽然其中一些很常见,但其他一些仍未得到充分利用。潜在语义索引 (LSI) 是属于后一类的技术。 什么是潜在语义索引? 从技术上讲,潜在语义索引 (LSI) 是 20 世纪 80 年代后期开发的一种计算机技术,用于从大型数

    2024年02月06日
    浏览(47)
  • uniapp - 微信小程序利用腾讯地图插件实现搜索地点/位置功能,uniapp小程序平台端使用腾讯地图做搜索城市位置+底部自动根据关键字联想其他相关位置(详细示例源码,一键复制开箱即用!)

    在uniapp微信小程序开发中,安装使用腾讯地图插件,并利用腾讯地图功能完成目的地、城市位置、名称等搜索功能,并且在下拉框中自动 “联想” 相关的地点位置。 最终效果图有点模糊,你可以按照教程一路复制就可以搞定了。

    2024年02月03日
    浏览(102)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包