什么是Nginx位置〜*和〜


15

我试图更好地理解nginx并试图形成一个正则表达式,其中每个不匹配的URL都/api/postdataV1被路由到不同的服务器集群。我一直在示例中看到这两件事,没有任何解释

location ~ {some regex}

location ~* (some regex}

我的第一个问题是这些是什么~~*(我认为~只是意味着我指定一个正则表达式?),但怎么样~*呢?

我想我想要的是这个。这是正确的吗?

location ~ ^/api/postdataV1$ {
    #matches to this route to where I want
}

location / {
    #This will be everything except /api/postdataV1 I think
}

这是正确的吗?但是~*...那我呢

谢谢,院长


Wiki总是值得一看。
那边那个家伙

1
我浏览了所有文档,但没有找到正确的链接,并在文档页面上找到了“位置”,该页面实际上应该具有该信息,但没有。(我记得Wiki是我将文档视为最新的文档)。
迪恩·希勒2013年

我会google nginx location,首先是这个 :)但我必须承认,一个人必须习惯nginx文档,特别是。在modules-section下面找到合适的东西。
那边的那个人

1
我使用搜索查询的Google第一页正是我第一次阅读的内容。wiki.nginx.org/HttpCoreModule在RED中表示该文章已过时,导致我转到另一页(您必须了解google根据不同的结果有关您是谁的信息(如果已登录)以及最终要命中的服务器)。我没有到达下面给出的页面,这些页面都使用谷歌和阅读动摇了:( !!!
Dean Hiller 2013年

Answers:


16

nginx文档中所述~*regex用于不区分大小写的匹配,~并且区分大小写。

您的语法可以,但是无需使用正则表达式即可重写(最短位置在请求匹配中位于最后):

location /api/postdata {
}

location / {
}

1
啊,很酷...是的,我尝试使用谷歌搜索〜*,但是google索引的特殊字符索引不太好(太糟糕的nginx却没有使用指令,因为我很可能会直接登陆该页面)
Dean Hiller

@DeanHiller看起来像Google修复了该错误:D
Yarek T

您的答案可能不正确,因为没有以下答案/api/PostData将无法匹配~*
Devy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.