Nginxtry_files指令详解

顺序检查文件是否存在返回一个找到的文件文件夹(结尾加斜线表示文件夹),如果所有的文件文件夹都找不到,会进行一个内部重定向最后一个参数
注:只有最后一个参数可以引起一个内部重定向,之前的参数设置内部的 URL 的指向最后一个参数回退 URL 且必须存在,否则会出现内部 500 错误命名location可以使用在最后一个参数中。

举例说明
示例一:

nginx.conf: |
    server {
            listen 80;
            listen [::]:80;
            server_name magedu.com www.magedu.com;
            index index.php index.html index.htm;
            root /var/www/html;
            location ~ /.well-known/acme-challenge {
                    allow all;
                    root /var/www/html;
            }
            location / {
                    try_files $uri $uri/ /index.html =404;
            }
   }

解释配置

1.root设置静态根目录为 /var/www/html
2. index设置目录默认文件index.html 、index.htmindex.php
3. try_files设置文件查找规则为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从

u

r

i

/

目录查找,最后查找

/

i

n

d

e

x

.

h

t

m

l

4.

例子:根据上面的配置,当请求

h

t

t

p

:

/

/

l

o

c

a

l

h

o

s

t

:

3004

/

a

p

i

时,

uri/ 目录查找,最后查找/index.html。 4. 例子:根据上面的配置,当请求 http://localhost:3004/api 时,

uri/目录查找,最后查找/index.html4.例子:根据上面的配置,当请求http://localhost:3004/api时,uri 为 /api当前try_file 具体为:/api、/api/、/index.html,其中 / 表示根目录(根据 rootalias指定)。

5.仅当以上都不存在时,NGINX才会触发404错误

查找逻辑

  1. 首先:检查 /var/www/html 目录是否存在 api 文件,如果存在,则返回文件;如果不存在,则进行下一步
  2. 其次:检查 /var/www/html目录是否存在 api/ 目录,如果存在,则在检查 api/ 目录是否存在 index.html 或者 index.htm 文件(由 index 指定);如果存在,则返回该文件。如果不存在,则进行下一步
  3. 最后:检查 /var/www/html 目录是否存在/index.html文件。如果存在,则返回文件;如果不存在,则返回 404。
    示例二:
location /pngs/ {
    root /data/user/;
    index index.html index.htm;
    try_files $uri   $uri/  /pngs/file.png; 
}

根据上面的配置,当请求 http://localhost:3003/pngs/rule.png 时, $uri 为 /pngs/rule.png,当前 try_file 查找顺序为,首先是:/data/user/pngs/rule.png,其次是:/data/user/pngs/rule.png/ 文件下的 index 所配置的文件,即: index.html、index.htm,最后是: /data/user/pngs/file.png这里插入代码

原文地址:https://blog.csdn.net/weixin_42896216/article/details/129088973

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17075.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注