`
betakoli
  • 浏览: 169029 次
社区版块
存档分类
最新评论

关于nginx location路径匹配问题(看这一篇就够了)

 
阅读更多
文档从我的有道云笔记复制过来的,排版有点乱掉,请参考原文
基本用法
location / {
root html;
try_files $uri $uri/ /index.html;
}
匹配所有“/”开头的路径到html目录下。try_files的含义是:首先会匹配$uri文件,如果没有去匹配$url/文件,如果再没有去找/index.html
 
扩展用法
location /static/ {
root dev;
try_files $uri $uri/ /index.html;
}
重点剖析一下:
1.首先会去找根路径 dev/static/
2.如果1没找到,会执行try_files ,如果$uri 没找到,则会使用html目录下的默认路径/html
 
从上面的例子可以看出,如果使用了try_files /index.html,在路径和目录配置错误的时候,总会跳转到html下面的index.html。导致最后完全找不到问题原因。try_files一定要慎用
 
扩展变形
location ^~ /static/ {
root /dev;
index index.html index.htm;
}
上面使用了绝对路径,系统会去查找系统目录/dev/static/ 如果找不到目录,会去找该目录下的index.html(index.htm),如果找不到会报错。由于我们使用了index,而非try_files。
 
匹配文件后缀
location ~ .*\.(gif|jpg|jpeg|png)${ root html; }
上面匹配所有最终结尾的文件路径。
 
匹配多种开头
location ~ ^/(api|login|register)/ {
}
注意符号的使用顺序,和匹配单个有所区别。
 
多种匹配结果,并且前缀相同,以最长路径的为准
location ^~ /app/ {
root /dev;
index index.html index.htm;
}
 
location ^~ /app/task/ {
root /dev1;
index index.html index.htm;
}
如果访问:ip/app/ ,会跳转到第一种,在目录/dev/app目录下查找。如果访问 ip/app/task 则会在目录/dev1/app/task/下查找。
颠倒上面的顺序:
发现查找的还是:/dev1/app/task/
 
如果不明白的,可以测试把
location / {
root html;
try_files $uri $uri/ /index.html;
}
放在所有路径的前面,或者最后,发现如果其他location的路径匹配了,基本轮不到它了。

<audio controls="controls" style="display: none;"></audio>

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    详解Nginx之Location配置(Location匹配顺序)

    理解Nginx中`location`的匹配顺序对于优化配置和解决路由问题至关重要。通过精确匹配、前缀匹配和正则表达式匹配的组合使用,可以实现灵活的请求处理策略。在实际操作中,应根据需求合理设计`location`规则,以确保...

    Location之正则匹配-Nginx入门到实践应用层负载均衡

    本篇文章将深入探讨`Location`指令的正则匹配功能,以及如何利用Nginx进行应用层负载均衡,从而实现高效、灵活的Web服务管理。 首先,我们要理解`Location`指令的基本用法。`Location`可以配合精确匹配、前缀匹配和...

    Nginx关于Rewrite执行顺序详解.docx

    如果一个URL被重写后再次匹配到同一个location块,且这个location块还有Rewrite规则,那么Nginx会在达到设置的最大循环次数(默认为10)时停止重写,并返回500 Internal Server Error错误。 四、使用技巧与注意事项...

    nginx 多个location转发任意请求或访问静态资源文件的实现

    `^~`修饰符表示这是一个优先级较高的匹配,一旦匹配成功,就不会再检查其他的`location`规则。这意味着所有以`.txt`结尾的请求都将直接由Nginx处理,从根目录(`/`)查找对应的文件。 2. `/`:这个location匹配所有...

    08-Location总结图解 Nginx入门到实践-中间件服务

    本篇文章将深入探讨Nginx的"Location"指令,以及它在中间件服务、应用层负载均衡、应用层安全防护和动静分离等场景中的实践应用。** 首先,我们要理解Nginx中的"Location"指令。Location是Nginx配置文件中用于定义...

    Nginx源码安装手册

    pcre是Perl兼容的正则表达式库,用于支持Nginx中的location匹配规则;openssl提供了安全通信能力,它是实现HTTPS所必需的;zlib库则是用于压缩网页内容,以提高传输效率。 在nginx及模块安装篇中,手册开始进入核心...

    nginx-1.21.4

    标题 "nginx-1.21.4" 指的是 Nginx 的一个特定版本,1.21.4,这是一个流行的开源Web服务器和反向代理服务器,以其高性能和稳定性著称。Nginx 通常用于处理静态内容,如图片、视频等,这与描述中的“影视资源”相吻合...

    Nginx安装配置

    - `location`区块定义了URL路由规则,当用户请求匹配此规则的URL时,Nginx将按该规则处理。 `root`指令指定了网站文档根目录,`index`指定了默认索引文件。`error_page`则用于设置错误页面。 对于更复杂的配置,...

    深入浅出Nginx之二【基本配置】

    《深入浅出Nginx之二【基本配置】》这篇博文主要探讨了Nginx的基础配置,涵盖了Nginx作为一款高性能的Web服务器和反向代理服务器如何进行配置以满足不同场景的需求。以下是对该文内容的详细解读: 1. **Nginx简介**...

    nginx配置文件

    本篇文章将深入探讨Linux环境下Nginx的配置文件细节。 **一、Nginx配置文件结构** Nginx的配置文件通常命名为`nginx.conf`,位于 `/etc/nginx/` 目录下。该文件由多个块组成,包括全局块、事件块、http块、server...

    nginx-vhost-conf.zip_nginx_nginx虚拟机配置

    在多站点部署环境中,Nginx的虚拟主机功能尤为重要,它允许我们在同一台服务器上运行多个独立的网站。本篇文章将深入探讨如何通过Nginx配置文件来设置虚拟主机,特别关注如何实现Nginx运行PHP文件。 ### 1. Nginx...

    location规则作业1

    本篇主要关注Nginx的`location`规则,它是Nginx配置文件中用于路由HTTP请求的核心部分。我们将详细探讨如何根据给定的描述和标签设计一个满足需求的配置,并解析`location`规则的不同语法。 首先,让我们了解`...

    某集团分布式系统部署之Nginx篇

    其中可能包括server_name指令来匹配请求的域名,location块用于定义请求路径的路由规则,以及proxy_pass指令来指定请求转发的目标。 3. **mime.types**:Nginx用于识别和处理不同类型的文件,mime.types文件中列出...

    超详细的nginx配置资料

    本篇文章将深入探讨Nginx的配置知识,通过分析“超详细的nginx配置资料”这一主题,我们将涵盖以下几个核心知识点: 1. **Nginx安装与启动**: 在Linux系统中,通常使用包管理器(如`apt-get`或`yum`)进行安装。...

    nginx-1.16.1.zip

    本篇文章将详细介绍Nginx 1.16.1版本在Windows系统中的使用,包括安装、配置和常见功能。 **一、Nginx 安装** 1. **下载**:`nginx-1.16.1.zip`是Nginx 1.16.1的Windows版本压缩包,解压后包含Nginx的可执行文件和...

    Linux下Nginx+PHP+MySQL配置(图)

    本篇将详细讲解如何在Linux环境下配置Nginx作为Web服务器,PHP作为后端处理语言,以及MySQL作为数据库系统,构建一个强大的LAMP(Linux、Apache、MySQL、PHP)替代架构——LNMP(Linux、Nginx、MySQL、PHP)。...

    Nginx一个域名访问多个项目的方法实例

    这篇文章介绍了Nginx如何配置来实现一个域名对应多个项目的访问,这种配置技术在实际的开发和部署中非常实用,尤其是在多项目共用一个域名的场景下。以下是基于文章内容所涉及知识点的详细说明: 1. Nginx的...

    架构师培训教程 大数据高并发服务器实战 第2.4篇-LNMP部分-Nginx部分-基本配置 共30页.pptx

    在架构师培训教程中,Nginx的基础配置是关键内容之一。 首先,Nginx可以在多种操作系统上运行,包括Windows和Linux。在Windows环境下,通过执行nginx.exe或批处理文件来启动和停止服务。而在Linux环境下,通常需要...

    nginx配置引发的403问题解决办法

    本篇文章将深入探讨这一问题,并提供解决方案。 ### 问题描述 当你尝试通过`curl`命令或者浏览器访问配置在Nginx上的本地域名时,如`www.requesturi.com`,却收到403 Forbidden错误,同时在`nginx_error.log`日志...

    nginx高性能web服务器详解

    本篇文章将深入探讨Nginx的核心特性、工作原理以及在实际部署中的关键配置和优化策略。 一、Nginx简介 1.1 Nginx特点: - 非阻塞I/O模型:Nginx采用事件驱动的异步非阻塞模型,能有效处理大量并发连接。 - 动态...

Global site tag (gtag.js) - Google Analytics