Nginx location的配置

Posted wangcan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx location的配置相关的知识,希望对你有一定的参考价值。

网上看了很多nginx的location配置,写的感觉我看的都不是很明白。记录下自己的使用经验。

语法规则: location [=|~|~*|^~] /uri/ { … }

示例:

location /user/ {
    proxy_pass http://user.example.com;
}

= ~这些我们称为location修饰符,他们定义了匹配模式

/user/ 这些我们称之为 匹配路径

## location修饰符

这个容易看的眼花缭乱,一个个捋清楚。

=    等于号即要求请求的地址和匹配路径完全相同

~    波浪号表示匹配路径是正则表达式,加上*变成~*后表示大小写敏感

^~   在~前面加上^就表示如果匹配到了就不匹配正则表达式的路径

## 重点规则

然后我们再确定一个原则,nginx做的是最长匹配,再规则中优先匹配长的。比如地址是 /user/api 会被匹配到/user/api的location而不会匹配到/user/的规则。

其次,先检查普通 匹配路径再检测 正则路径。

 

Let’s illustrate the above by an example:

location = / {
    [ configuration A ]
}

location / {
    [ configuration B ]
}

location /documents/ {
    [ configuration C ]
}

location ^~ /images/ {
    [ configuration D ]
}

location ~* \.(gif|jpg|jpeg)$ {
    [ configuration E ]
}

The “/” request will match configuration A, the “/index.html” request will match configuration B, the “/documents/document.html” request will match configuration C, the “/images/1.gif” request will match configuration D, and the “/documents/1.jpg” request will match configuration E.

 如果是proxy_pass配置到iis的应用程序,在proxy_pass里最好不写路径只写网站级别

a.com/app 转发到原始的 192.168.1.2/app

这两个后缀必须一样,否则会转发失败。

 

以上是关于Nginx location的配置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置转发

nginx中location配置及匹配详解

nginx转发配置

nginx location配置

Nginx location的配置

nginx配置location [=|~|~*|^~] /uri/ { … }用法