动态生成的图像:nginx + php-fpm

时间:2013-07-15 15:34:03

标签: nginx image-generation

我想用

location /images/ {
    try_files $uri @generateImage;
}

location @generateImage {
    # pass to backend php-fpm
}

用于图像生成。但在这种情况下,我必须在第一代图像处理php-fpm加载(我们有大量的请求,它是某种横幅交换)。是否可以将nginx配置为等待第一个php-fpm调用处理到同一位置?

2 个答案:

答案 0 :(得分:0)

通常像这样的实时处理真的是一个坏主意,如果你在某些时候获得高流量会严重影响你的系统,有没有办法可以排队这些图像进行处理然后通过cron作业处理它们?

如果您仍然想按照自己的方式进行操作,我建议让PHP脚本在完成时发出重定向响应,因为您确定它不会花费很长时间来生成该图像,或者让它回复在向浏览器提供正确的content-type之后直接使用图像数据。

答案 1 :(得分:0)

这两个要求相互咬合。一方面,您的服务器无法处理产生PHP进程,同时提供大量静态文件,另一方面您需要实时动态内容。显而易见的答案是将两者分成不同的机器。然后,您的生成块是一个代理配置,将请求传递给专用的图像生成计算机(或两个,三个......)。生成器上的脚本应该返回结果并将其划线到磁盘。 Cron和rsync可以处理与静态内容服务器的同步。 如果您需要有关配置的帮助,请发布包含特定问题的新帖子。