首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx Location 配置

今天有一位同学问到 Nginx 的站点多路径匹配的问题?

1. 需要返回 2. 需要返回 如何配置 Nginx 使之生效?

解决这个问题,第一的反映是直接使用 Nginx 的 location 指令来解决,不过在给出答案之前,我们先来了解一下 Nginx location 指令的基础。

Nginx 区块配置概念

在 Nginx 的配置文件中,通常会用两个常用的区块(Block)来进行设置:

1.Server 区块2.Localtion 区块

这里的区块是指 Block,你甚至可以理解为后面的那一对 之间的配置内容。

Sever 区块主要是真的主机的配置,比如配置主机的域名,IP,端口等内容。当然,在一个 Nginx 的配置文件里面,我们是可以指定多个 Sever 区块的配置的。

而 Location 区块则是在 Sever 区块里面,细分到针对不同的路径和请求而进行的配置。因为一个站点中的 URI 通常会非常多,所以在 Location 区块设置这部分,你也是可以写多个 Location 的配置的。

下面来看看 Location 配置的基本语法先:

上面的 配置项是可以使用正则表达式的。常用的几种如下:

1. 。对,留空也是一种设置方式。在留空的情况下,配置表示请求路径由 开始。2. ,等于号还是非常容易理解的:就是请求路径正好等于后面的 的值;跟第一项留空还是有区别的。3. ,飘号(注意是英文输入的飘号)表示大小写敏感的正则匹配。4. 表示大小写不敏感的正则匹配。5. 表示这里不希望有正则匹配发生。

Nginx 处理 Location 区块的顺序

上面了解了 location 指令基本的概念和常用配置。我们再来看看 Location 生效的顺序!这个也很重要:

每一个请求进来 Nginx 之后,Nginx 就会选择一个 Location 的最佳匹配项进行响应,处理的具体流程是逐一跟 location 的配置进行比对,这个步骤可以分为以下几步:

1.先进行 的匹配(也就是 location 的 optionalmodifier 为空的配置)。2.Nginx 其次会根据 URI 寻找完全匹配的 location 配置(也就是 location 的 optionalmodifier 为 的配置).3.如果还是没有匹配到,那就先匹配 配置,如果找到一个配置的话,则会停止寻找过程,直接返回响应内容。4.如果还是没有找到匹配项的话,则会先进行大小写敏感的正则匹配,然后再是大小不写敏感的正则匹配。

Nginx Location 配置的一些例子:

多说无益,看了那么多理论,没有具体的例子支撑也是白搭,所以我们来看一下具体的配置例子:

非常实用的两个例子:

1.简单的图片防盗链

2.针对一些可写入的路径,禁止 或者 的脚步执行

问题的答案

最后,我们再看问题的答案,可以是类似这个样子的:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180515A0VI3U00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券