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

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

原文地址:https://www.cnblogs.com/wangcan/p/10922928.html

时间: 2024-11-10 01:11:28

Nginx location的配置的相关文章

nginx location在配置中的优先级

location表达式类型 ~     表示执行一个正则匹配,区分大小写 ~*    表示执行一个正则匹配,不区分大小写 ^~    表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location. =     进行普通字符精确匹配.也就是完全匹配. @     “@” 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location优先级说明 在nginx的location和配置中location的顺序没有太大关系.正loca

NGINX location 在配置中的优先级

location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location. = 进行普通字符精确匹配.也就是完全匹配. @ 它定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location优先级说明 在nginx的location和配置中location的顺序没有太大关系.正location表达式的类型有关.相同类型的表达式

Nginx Location指令配置及常用全局变量

在实践安装nginx的时候,不知道./configure是什么意思,这里特地记录一下. 在linux中./代表当前目录,属于相对路径../代表上一级目录,属于相对路径/代表根目录,/开头的文件都是绝对路径./configure的意思是执行当前目录下面的configure文件configure一般都有可执行的权限,如果没有的话,用./configure是不能执行的,但是可以这样执行:sh ./configure 使用--prefix参数指定nginx安装的目录 不指定prefix,则可执行文件默认

nginx location 的配置

一.基本语法:location [=|~|~*|^~] /uri/ { - } 二.分类: 1.基本location:以" = "或" ^~ "为前缀或者没有任何前缀的 /uri/ 2.正则location:以" ~ "或" ~* "为前缀的 /uri/ 基本location 又分为2种: 1)严格精确匹配:  " = " 2)最大前缀匹配: 无前缀 或者以" ^~ " 三.解释: 1)

Nginx Location和Rewrite深入剖析

Nginx Location和Rewrite深入剖析 Nginx Location Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block,而location是Nginx配置中的一个指令,用于访问的URL匹配,而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作. location功能是由ngx_http_index_module模块提供的. location常放在serve

nginx location配置

nginx location配置 location在nginx中起着重要作用,对nginx接收到的请求字符串进行处理,如地址定向.数据缓存.应答控制.代理转发等 location语法 location [=|~|~*|^~] uri {...} []部分是匹配类型,可以没有,其中各项含义: (1)= 精准匹配,请求字符串必须和uri完全相同时匹配成功 (2)~ 区分大小写的正则匹配 (3)~* 不区分大小写的正则匹配 (4)^~ 注意这个不是正则匹配,表示uri以普通字符串开头, (5)空 表示

nginx location配置(URL)

语法规则: location [=|~|~*|^~] /uri/ { … }= 表示精确匹配,这个优先级也是最高的^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格).~  表示区分大小写的正则匹配~* 表示不区分大小写的正则匹配(和上面的唯一区别就是大小写)!~和!~*分别为区分大小写不匹配及不区分大小写不匹配的正则/ 通用匹配,任何请求都会匹配到,默认

nginx location静态文件配置

进入nginx安装目录的conf目录下,修改nginx.conf文件,在一个server{}中添加 一个location 部分配置代码如下 root@ubuntu:/usr/local/nginx/conf# vi nginx.conf server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } location /image/ { root /usr/local

nginx反向代理配置里的location 反斜杠用法

两台nginx服务器 nginx A: 192.168.1.48 nginx B: 192.168.1.56 一. 测试方法 在nginx A中配置不同的规则,然后请求nginx A: http://192.168.1.48/foo/api 观察nginx B收到的请求,具体操作是查看:'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; 二. 测试过程及结果 案例1 nginx A配