nginx try_files指令的实现示例

 更新时间:2024年07月15日 09:17:39   作者:fastjson_  
try_files用于指定文件的查找规则,可以配置多个规则,会按顺序执行查找规则,本文主要介绍了nginx try_files指令的实现示例,具有一定的参考价值,感兴趣的可以了解一下

try_files 用于指定文件的查找规则,可以配置多个规则,会按顺序执行查找规则,若找到文件则中断查找并返回文件,若找不到则返回404响应。

配置语法

location / {
    root html;
    index index.html;
    try_files $uri $uri/ /index.html;
}

解释下配置:

  • root指令 设置了 静态根目录 为 html。
  • index指令 设置了 目录的默认文件 为 index.html。
  • try_files指令 设置了 文件查找规则 为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 $uri/ 目录中查找,最后查找 /index.html。

举个例子

针对上面的配置,当请求 http://localhost:8080/abc 时,则 $uri 为 /abc,此时,try_files 的规则可以具体为 /abc /abc/ /index.html/ 表示根目录 html(由 root指令 指定)。

其具体的查找逻辑如下:

检查 html 目录中是否存在 abc 文件(对应第1个规则)

  • 如果存在,则返回文件
  • 如果不存在,则继续下一步

检查 html 目录中是否存在 abc/ 目录(对应第2个规则)

如果存在,则检查 abc/ 目录中是否存在 index.html 文件(由 index指令 指定)

  • 如果存在,则返回文件
  • 如果不存在,则默认返回403,因为目录不可访问;

如果不存在则继续下一步

检查 html 目录中是否存在 index.html 文件(对应第3个规则)

  • 如果存在,则返回文件
  • 如果不存在,则返回404

小结: 可以看到,try_files指令 的查找逻辑和 root指令index指令 有很大的关系。

高级用法:

先在本地尝试查找文件,找不到则重定向到其他地址

location / {
    try_files $uri $uri.html $uri/ @mongrel;
}
location @mongrel {
    proxy_pass http://mongrel;
}

到此这篇关于nginx try_files指令的实现示例的文章就介绍到这了,更多相关nginx try_files内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx如何根据报文里字段转发至不同地址

    nginx如何根据报文里字段转发至不同地址

    要在 Nginx 中根据 POST 请求的 JSON 负载中的 id 字段的值进行转发,你可以使用 Nginx 的 ngx_http_lua_module 模块,这个模块允许你在 Nginx 配置中使用 Lua 脚本,本文介绍nginx如何根据报文里字段转发至不同地址,感兴趣的朋友一起看看吧
    2024-12-12
  • Nginx配置禁止访问某个目录或文件的方法和示例

    Nginx配置禁止访问某个目录或文件的方法和示例

    在 Nginx 中,可以通过配置 访问控制规则 来禁止访问某个目录或文件,以下是详细的配置方法和示例,帮助你快速实现禁止访问的需求,需要的朋友可以参考下
    2025-11-11
  • Nginx DNS resolver配置实例

    Nginx DNS resolver配置实例

    这篇文章主要介绍了Nginx DNS resolver配置实例,本文讲解在proxy_pass 和 upstream server 通信的时候需要手动指定 resolver,本文就给出了配置实例,需要的朋友可以参考下
    2015-01-01
  • Nginx配置二级域名的方法实现

    Nginx配置二级域名的方法实现

    本文主要介绍了Nginx配置二级域名的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • WordPress与Drupal的Nginx配置rewrite重写规则示例

    WordPress与Drupal的Nginx配置rewrite重写规则示例

    这篇文章主要介绍了WordPress与Drupal的Nginx配置重写规则示例,文中介绍的rewrite写法简单而突出配置重点,需要的朋友可以参考下
    2016-01-01
  • 解决nginx报错信息 client intended to send too large body: 1331696 bytes

    解决nginx报错信息 client intended to send too large body: 1331696

    这篇文章主要介绍了解决nginx报错 client intended to send too large body: 1331696 bytes的相关资料,需要的朋友可以参考下
    2017-02-02
  • 使用Nginx实现镜像流量的示例代码

    使用Nginx实现镜像流量的示例代码

    在现代分布式系统中,确保高可用性和负载均衡是至关重要的,Nginx 作为一个高性能的反向代理服务器,不仅可以用于负载均衡,还可以通过镜像流量功能,将实时流量复制到其他服务器,本文将详细介绍如何使用 Nginx 实现镜像流量,需要的朋友可以参考下
    2026-03-03
  • Nginx配置location匹配顺序详细总结

    Nginx配置location匹配顺序详细总结

    这篇文章主要介绍了Nginx配置location匹配顺序详解,Nginx是十分轻量级的HTTP服务器,Nginx凭借其稳定性、低资源消耗、简单配置和丰富的功能,从十多年前名不见经传的Web服务器软件,发展到如今能够跟Apache匹敌的地位,需要的朋友可以参考下
    2023-08-08
  • nginx之Http代理和Websocket代理详解

    nginx之Http代理和Websocket代理详解

    本文介绍了在Ubuntu上安装和配置Nginx的步骤,包括启动、停止、重新加载配置、重新打开日志文件、查看进程等常用命令,还详细介绍了Nginx的静态代理和负载均衡功能,包括轮询、最少连接数、iphash和权重等策略
    2025-03-03
  • Nginx反向代理学习实例教程

    Nginx反向代理学习实例教程

    nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理,这篇文章主要给大家介绍了关于Nginx反向代理的相关资料,需要的朋友可以参考下
    2021-10-10

最新评论