nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > Nginx swagger屏蔽页面

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

作者:ACGkaka_

这篇文章主要为大家详细介绍了Nginx 如何根据swagger关键字屏蔽页面的实现方案,文中有详细的解决方案,对我们的学习或工作有一定的帮助,需要的朋友可以参考下

一、知识回顾

1.什么是 location

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

2.location 语法

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

3.location 的匹配规则

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

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

4.优先级排序

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

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

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

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

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

1.实现方案

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

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

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

location ~* swagger {
    return 404;
}

2.测试结果

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

整理完毕!

参考地址:

1.Nginx之location匹配规则,https://www.cnblogs.com/gaoyanbing/p/16915446.html

到此这篇关于详解Nginx如何根据swagger关键字屏蔽页面的文章就介绍到这了,更多相关Nginx swagger屏蔽页面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文