location块在server块中使用,它的作用是根据客户端请求URL去定位不同的应用。

匹配格式 作用
location = /uri = 表示精确匹配,只有完全匹配上才能生效
location ^~ /uri ^~ 匹配以某个URL前缀开头的请求,不支持正则表达式
location ~ pattern ~区分大小写的正则匹配
location ~* pattern ~*不区分大小写的正则匹配
location /uri 前缀匹配,不带任何修饰符,但是在正则匹配之后
location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
location @ 命名空间,不提供常规的请求匹配

1、“=”优先级最高
2、如果“=”匹配不到,会和“^~”进行匹配;
3、继而是“~”,如果有多个“~”,则按照在文件里的先后顺序进行匹配;
4、如果还匹配不到,则与“/uri”进行匹配;
5、通用匹配“/”的优先级最低,如果找不到其他配置,就会进行通用匹配;
6、“@”表示命名空间的位置,通常在重定向时,进行匹配,且不会改变URL的原始请求。

前缀匹配时,Nginx 不对 url 做编码,因此请求为 /static/20%/xx,可以被规则 ^~ /static/ /XX 匹配到(注意是空格)
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

root
location中root指定的只是相对路径,需要和路径结合起来映射地址,比如

location ^~/static/ {
#这里的root需要和路径结合使用,即是映射的文件位置为 /usr/lxw/static
root /usr/lxw/;
index index.html
}

此时我们访问 IP/static/a.css ,那么就会找到 /usr/lxw/static/a.css

alias
alias指定的是绝对路径,不会和location中的路径结合使用,而是直接使用地址映射到文件,比如

location ^~/static/ {
#不会路径结合映射地址,那么这里就会直接映射到/usr/lxw/文件夹下的文件
alias /usr/lxw/;
index index.html
}

如果定义的路径是文件夹,那么需要使用/结尾

proxy_pass
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。
假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。

第一种
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
代理到URL:http://127.0.0.1/test.html 第二种(相对于第一种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1;
}
代理到URL:http://127.0.0.1/proxy/test.html 第三种
location /proxy/ {
proxy_pass http://127.0.0.1/lxw/;
}
代理到URL:http://127.0.0.1/lxw/test.html 第四种(相对于第三种,最后少一个 / )
location /proxy/ {
proxy_pass http://127.0.0.1/lxw;
}
代理到URL:http://127.0.0.1/lxwtest.html

nginx location块的更多相关文章

  1. Nginx location 匹配顺序整理

    Nginx location模块整理 具体的Nginx安装就不在这里描述了,这里只是为了对location的描述 Nginx环境 a. 查看当前系统cat /etc/redhat-release [r ...

  2. nginx location详解(三)

    location官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#location Syntax: location [ = | ...

  3. nginx location匹配顺序及CI框架的nginx配置

    Nginx location匹配顺序如下: 用前缀字符串定义的location规则对URI进行匹配测试. =号定义了精确的前缀字符串匹配,如果发现精确匹配则使用当前规则.否则继续下一步匹配. 匹配其它 ...

  4. nginx Location 语法基础知识

    URL地址匹配是Nginx配置中最灵活的部分 Location 支持正则表达式匹配,也支持条件匹配,用户可以通过location指令实现Nginx对动丶静态网页的过滤处理. Nginx locatio ...

  5. nginx location详解

    Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... } [=|~|~*|^~|@] 被称作 location modifier ...

  6. nginx location正则写法

    nginx location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # ...

  7. nginx location正则写法(转载)

    nginx location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # ...

  8. Nginx Location模块

    相关知识点:URI:统一资源标识符,是一个用于标识某一互联网资源名称的字符串,该种标识允许用户对任何的资源通过特定的协议进行交互操作.URL:统一资源定位符,由三部分组成(1)http://协议 (2 ...

  9. Nginx location 配置用法及正则例子

    Nginx location 配置语法     1. location [ = | ~ | ~* | ^~ ] uri { ... }     2. location @name { ... }   ...

  10. Nginx Location匹配顺序

    理论部分 文字释义匹配规则如下: 略述: 1.nginx服务器首先在server块的多个location块中搜索是否有标准的uri和请求字符串匹配.如果有多个标准uri可以匹配,就匹配其中匹配度最高的 ...

随机推荐

  1. Linux中查看dmesg中 ata1对应的盘符,以及SATA/NVME SSD的rescan/delete操作方法

    1.查看dmesg 中ata1 对应的盘符: Step1;  lsscsi -s 查看盘符(bdf) 对应的host Id: Step2: ll /sys/class/scsi_host  可以找到不 ...

  2. Python中矩阵运算(基于numpy包)

    1 乘法 在数组中,a * a计算对应元素相乘(矩阵点乘):在矩阵中,A*A计算矩阵乘法 np.multiply()计算对应元素相乘(矩阵点乘) np.dot()计算矩阵乘法 import numpy ...

  3. YOLOV3目标检测模型训练实例

    YOLOV3目标检测 从零开始学习使用keras-yolov3进行图片的目标检测,比较详细地记录了准备以及训练过程,提供一个信号灯的目标检测模型训练实例,并提供相关代码与训练集. DEMO测试 YOL ...

  4. 编译安装c2工具sliver以及python 客户端sdk

    背景: 项目需要安装sliver服务端和客户端还有sliver的python sdk: git clone https://github.com/BishopFox/sliver.git cd sli ...

  5. __set_name__魔法方法

    介绍 __set_name__ 方法是 Python 3.6 中引入的一种特殊方法,它可以在类属性被赋值时自动调用.这个方法可以用来处理类属性的名称绑定问题,例如将类属性与其所在的类进行绑定. 具体来 ...

  6. html基础和js基础

    HTML基础 html文件结构 <!DOCTYPE html> 文档类型声明 <html lang="en"></html> 是html标签,称 ...

  7. 【LeetCode回溯算法#02】组合总和III

    组合总和III 力扣题目链接(opens new window) 找出所有相加之和为 n 的 k 个数的组合.组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字. 说明: 所有数字 ...

  8. 【Azure 应用服务】Azure App Service多实例中,出现某一个实例CPU居高不下的情况,如何重启单个实例呢?

    问题描述 在使用App Service服务中,当多实例中,其中一个实例出现高CPU,高Memory的情况,为了尽可能少的影响正在运行的应用,需要单独重启某一个实例的情况下,如何手动操作呢? 问题解答 ...

  9. .Net缓存之MemoryCahe

    1. MemoryCahe NetCore中的缓存和System.Runtime.Caching很相似,但是在功能上做了增强,缓存的key支持object类型:提供了泛型支持:可以读缓存和单个缓存项的 ...

  10. Java 递归方法的使用 + 例子

    1 /* 2 * 递归方法的使用 3 * 1.递归方法:一个方法体内调用它自身 4 * 2.方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制 5 * 递归一定要想已知方向 ...