nginx(三十五)try_files、internal、error_page指令

①  try_files

try_files是'http_core核心模块'所带的指令,主要是能'替代'一些'rewrite的指令',提高'解析'效率

try_files案例讲解一

遗留:

1) 如果'回退'URI(最后一个参数),不是'命名的location',那么$args'不会自动'保留;
  
2) 如果你'想保留$args',则必须'明确'声明

try_files $uri $uri/ /index.php?&$args

try_files案例讲解二 

②  internal

1)应用场景

 

2)案例讲解1

假定: 需要'限制访问'的图片的 'url 路径'是 /images/,nginx 进行如下'配置':

location ^~ /images/ {
    # 声明'仅限'内部调用
    internal;
}

 

 3)案例讲解2

1. X-Accel-Redirect 这个'响应头(后端应用返回给nginx)'必须设置,它的值就是'文件'的url;

2. 需要和 nginx 中 location '相匹配';

3. 其实就是声明将'本次请求'进行一次'内部调用'的重定向;

php的X-Accel-Redirect头  python的X-Accel-Redirect头

图片来源 

在nginx中用X-Accel-Redirect response header控制文件下载

③  error_page

error_page几种常见的案例场景

+++++++++++++ "@命名location的三个应用场景" +++++++++++++

1) try_files $uri @wzj;

2) error_page 403 @wzj;

3) '@'开头的X_Accel_Redirect'响应头'

Nginx的X-Accel-Redirect实现大文件下载   nginx内部重定向 X-Accel-Redirect

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一款高性能的Web服务器软件。它支持非常丰富的配置指令,其之一就是try_filestry_files指令用于尝试寻找指定的文件或目录,并在找到匹配项时将请求传递给下一个指令,例如proxy_pass。 try_files指令的语法如下: try_files file ... uri; 其,file是要查找的文件或目录,可以指定多个;uri是要传递的URI。 如果Nginx无法找到任何匹配的文件或目录,则会返回404错误。 try_files指令可以用于处理一些常见的情况,例如: 1. 静态文件服务 可以通过try_files指令将请求传递给静态文件服务,如果找到匹配的文件,则返回该文件,否则返回404错误。 例如: server { listen 80; server_name example.com; root /var/www; location / { try_files $uri $uri/ =404; } } 在这个例子,当请求到达根目录时,Nginx会尝试查找匹配URI的文件,如果找到,则返回该文件,否则返回404错误。 2. URL重写 可以通过try_files指令将请求重写为另一个URI,并将其传递给其他指令。 例如: location /blog/ { try_files $uri $uri/ /index.php?$args; } 在这个例子,当请求到达/blog/目录时,Nginx会尝试查找匹配URI的文件(如果有),否则会将请求重写为/index.php,并将查询字符串(args)附加在后面。 尽管try_files指令功能强大,但也要慎用,否则可能会对服务器性能产生负面影响。当指定多个文件或目录时,Nginx会逐个查找,这可能会导致一些性能问题。因此,在使用try_files时,应该尽可能保持简单,避免使用复杂的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值