3

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

图像的 nginx 配置很简单:

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

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

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

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

4

1 回答 1

0

我认为您应该使用 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

于 2012-08-30T07:22:50.867 回答