nginx 在图片请求出现 404 时返回自定义默认图片的方法

使用 NGINX 的error_page指令。下面是一个简单的配置示例:

server {
    listen 80;
    server_name example.com;

    root /path/to/your/images;

    # Define a location block for handling image requests
    location /images/ {
        try_files $uri @fallback;
    }

    # Define a location block for the fallback image
    location @fallback {
        error_page 404 = /images/default.jpg;
        return 404;
    }
}

这个配置中:

  • try_files $uri @fallback; 尝试查找请求的图片文件,如果文件存在则返回,否则转到 @fallback 定义的位置。
  • error_page 404 = /images/default.jpg; 当发生404错误时,NGINX会将请求重定向到指定的图片,这里是 /images/default.jpg
  • return 404; 返回404状态码。

以我本地的 blog 为例,我的配置如下:

  location /blog/tags/ {
        try_files $uri @fallback;
    }

  # Define a location block for the fallback image
  location @fallback {
      error_page 404 = /blog/tags/zzz.jpg;
      return 404;
  }

要注意的是,如果在配置中也有关于图片的操作配置,要注意一下他们的先后顺序,NGINX 会使用首先匹配到的配置块来处理请求。


AWK 在 Debian 11 上的表现与 Debian 10 有差异 Mac 批量关闭finder