nginx配置多个location_一文理清 nginx 中的 location 配置(系列一)

本文详细解析了nginx中location配置的语法、匹配命令及顺序,通过多个案例分析了location匹配过程,包括精准匹配、前缀匹配、正则匹配等,还探讨了location与URI结尾、问号后参数的关系,以及命名location的使用,为实际部署提供指导。
摘要由CSDN通过智能技术生成
6d5d34184e2553fd5cbe34aa95001ebd.png

前言

location 指令是 nginx 中最关键的指令之一,location 指令的功能是用来匹配不同的 URI 请求,进而对请求做不同的处理和响应,这其中较难理解的是多个 location 的匹配顺序,本文会作为重点来解释和说明。

开始之前先明确一些约定,我们输入的网址叫做请求 URI,nginx 用请求 URI 与 location 中配置的 URI 做匹配。

nginx文件结构

首先我们先简单了解 nginx 的文件结构,nginx 的 HTTP 配置主要包括三个区块,结构如下:

Global: nginx 运行相关Events: 与用户的网络连接相关http    http Global: 代理,缓存,日志,以及第三方模块的配置    server        server Global: 虚拟主机相关        location: 地址定向,数据缓存,应答控制,以及第三方模块的配置

从上面展示的 nginx 结构中可以看出 location 属于请求级别配置,这也是我们最常用的配置。

配置 location 块

location 语法

Location 块通过指定模式来与客户端请求的URI相匹配。Location基本语法:

  • 匹配 URI 类型,有四种参数可选,当然也可以不带参数。
  • 命名location,用@来标识,类似于定义goto语句块。
location [ = | ~ | ~* | ^~ ] /URI { … }location @/name/ { … }

location匹配命令解释

b29e1e08ff17416f1d5ae01db65753ab.png

location匹配顺序

nginx有两层指令来匹配请求 URI 。第一个层次是 server 指令,它通过域名、ip 和端口来做第一层级匹配,当找到匹配的 server 后就进入此 server 的 location 匹配。

location 的匹配并不完全按照其在配置文件中出现的顺序来匹配,请求URI 会按如下规则进行匹配:

  1. 先精准匹配 = ,精准匹配成功则会立即停止其他类型匹配;
  2. 没有精准匹配成功时,进行前缀匹配。先查找带有
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值