nginx location配置详细解释

【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。
由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。
欢迎访问我的个人网站:https://www.tecchen.xyz

语法规则

location [=|~|~*|^~] /uri/ { … }

  • = 开头表示精确匹配
  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头
  • ~ 开头表示区分大小写的正则匹配 以xx结尾
  • ~* 开头表示不区分大小写的正则匹配 以xx结尾
  • !和!*分别为区分大小写不匹配及不区分大小写不匹配 的正则
  • / 通用匹配,任何请求都会匹配到。

匹配顺序

首先精确匹配 = -> 其次以xx开头匹配^~ -> 然后是按文件中顺序的正则匹配 -> 最后是交给 / 通用匹配。
当有匹配成功时候,停止匹配,按当前匹配规则处理请求。

常用的location匹配规则

  • 配置指定文件名
icon
location = /favicon.ico {
   root images; # 文件在images目录中
   expires 7d;  # 缓存7天
}
  • 根据文件名模糊匹配
百度统一验证
location ~* ^/baidu_verify_[\w]+.html$ {
   root  html;
}
  • 路径部分匹配
静态图片
location ^~ /cdn-images/ {
   alias images/;  # 注意使用的alias及后面的/
   expires 7d;
}
  • 动静分离
静态文件
location ~* \.(html|jpg|png)$ {
    root   cloud-web;
    index  index.html index.htm;
}
动态请求
location ~* /hbm/  {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass   http://10.0.1.210:8769;
}

Original: https://www.cnblogs.com/Candies/p/10635401.html
Author: Candyメ奶糖
Title: nginx location配置详细解释

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/684587/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mysql优化篇-索引优化与查询优化

    1、索引失败案列 如果查询时没有使用索引,查询语句就会扫描表中所有记录,在数据量大的情况下,查询会很慢。(1)全值匹配(2)最佳左前缀法则mysql可以为多个字段创建索引,一个索引…

    技术杂谈 2023年7月24日
    0105
  • MVC与MVVM?

    model-数据层 view-视图层 controller-控制层 MVC的目的是实现M和V的分离,单向通信,必须通过C来承上启下 MVVM中通过VM(vue中的实例化对象)的发布…

    技术杂谈 2023年5月31日
    096
  • .net自动分类算法【原创】

    目前自动分类算法是参考网上的思路和想法个人自主研发的。 当然互联网上有很多人采用不同的方式去解决自动分类问题,也有不同的算法和论文支持去做,但纵观自动分类这块工作是属于机器学习这块…

    技术杂谈 2023年7月24日
    063
  • C++ Vector 内存预分配的良好习惯

    为什么要对 Vector 进行内存预分配? 1,Vector 本身是一个内存只会增长不会减小的容器。 2,Vector 存在 size 和 capacity 两种计数,size 即…

    技术杂谈 2023年6月21日
    0124
  • 使用微软分布式缓存服务Velocity Part 3

    概述 Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,可以缓存各种类型的数据,如CLR对象、XML、二进制数据等,并且支持集群模式的…

    技术杂谈 2023年5月31日
    0147
  • lightdb异常There is a column named <xxx> in table <xxx>, but it cannot be referenced fromthis part of the query

    seehttps://dba.stackexchange.com/questions/239064/error-there-is-a-column-named-in-table-s…

    技术杂谈 2023年6月1日
    096
  • Python中的异常(Exception)

    以下 Python 版本为 Python 3.8.10 . 初探异常 错误: 语法错误 . 逻辑错误 . 异常:程序运行过程中,出现的意料之外的错误(大概类似 corner cas…

    技术杂谈 2023年7月24日
    092
  • 分布式事务服务 Seata

    官网:https://seata.io/zh-cn/index.html https://seata.io/zh-cn/docs/overview/what-is-seata.ht…

    技术杂谈 2023年5月31日
    0101
  • 实践篇丨「QingScan」使用指南

    QingScan是一个安全工具整合系统,解决你平时使用各种工具一个个打开填写扫描目标的繁琐过程。QingScan工具只需要你把URL给它,它会调用市面上各种扫描工具,对URL扫描,…

    技术杂谈 2023年5月31日
    0101
  • Red Hat dhclient

    如果你是通过dhcp动态获取ip进行上网,我们一般情况下需要对/etc/sysconfig/network-scripts目录下对应的网卡配置进行修改,将BOOTPROTO改为dh…

    技术杂谈 2023年6月1日
    098
  • Python/Go/Java算法常用模板、数据结构

    记录一些个人在刷leetcode和CF中用的比较多的语法 初始化数组 Golang go语言中定义二维数组和初始化比较特殊,需要先初始化行数再初始化列,定义一个mxn数组:: ma…

    技术杂谈 2023年7月24日
    079
  • 容器内的Linux诊断工具0x.tools

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 Linux上有大量的问题诊断工具,如perf、bcc等,但这些诊断工具,虽然功能强大,但却需要很高的…

    技术杂谈 2023年7月25日
    081
  • Redis基本操作

    windows 下载 https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100 然后解压 打开服务 然后…

    技术杂谈 2023年7月11日
    0100
  • 基本电路学习-1 12v转5V 电路

    本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。另外建了几个QQ技术群:2、全栈技术群:616945527,加群口令abc1232、硬件嵌…

    技术杂谈 2023年6月1日
    0193
  • K8S持久化存储PV、PVC笔记

    Kubernetes 使用Persistent Volume和Persistent Volume Claim 两种API资源来管理存储。 PersistentVolume (简称P…

    技术杂谈 2023年5月30日
    0110
  • ES6 Template Strings(转)

    Strings in JavaScript have been historically limited, lacking the capabilities one might e…

    技术杂谈 2023年5月30日
    0100
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球