asynchronous - 如果它不存在,如何让nginx重试静态文件

标签 asynchronous nginx thumbnails

我有一个应用程序服务器,它生成图像缩略图,其中的 URL 由 nginx 作为静态资源处理。目前这是一个同步过程,所以当请求通过时图像就在那里。

图像的 nginx 配置很简单:

location /image/cache/ {
    alias /var/www/image/cache/;
}

然而,我并没有让应用程序阻塞,而是希望生成 URL,而是异步生成相应的文件,从而释放应用程序服务器。然后,问题就变成了在 nginx 中处理图像请求,其中可能没有文件。

有没有办法配置 nginx 等待并重试还不存在的静态资源?

另一种方法可能是连接一个应用程序调用以确保在文件可用时返回该文件,我也愿意接受这样做的方法。

最佳答案

我认为你应该使用 error_page @failback 来通知你的应用程序/浏览器缩略图还没有出现

location /image/cache/ {
    alias /var/www/image/cache/;
    error_page         404 @fallback;
}

location @fallback {

    # image is not ready, so handle this situation here

}

通常的做法是按需生成缩略图并将它们缓存为静态文件。你的情况这么贵吗?你能解释一下你的决定背后的原因吗?我的意思是异步制作 thums

关于asynchronous - 如果它不存在,如何让nginx重试静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190623/

相关文章:

css - 将菜单与响应式缩略图网格的第一个缩略图对齐

c# - WaitAll 和 WhenAll 有什么区别?

javascript - 在 Javascript 中执行 ABCD 函数之前如何等待所有 Promise 完成?

Grails:在异步任务中使用 GORM 保存域模型

ssl - NGINX:两个不同的 websocket 连接的不同日志

c++ - 如何访问 win32 缩略图的图像数据

python - 使用 Python 从视频文件创建缩略图

node.js - process.nextTick() 是否立即执行

apache - apache/nginx/IIS 有什么区别

redirect - 无限重定向 - nginx