【问题标题】:Dynamically generated images: nginx + php-fpm动态生成图片:nginx + php-fpm
【发布时间】:2013-07-15 15:34:02
【问题描述】:

我想使用

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

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

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

【问题讨论】:

    标签: nginx image-generation


    【解决方案1】:

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

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

    【讨论】:

    • 表示第一个请求不会得到图像,所以队列不是完美的解决方案。
    【解决方案2】:

    这两个要求相互影响。一方面,您的服务器无法处理生成的 php 进程,同时提供大量静态文件,另一方面,您需要实时动态内容。显而易见的答案是将两者分开在不同的机器上。然后,您的生成块是一个代理配置,它将请求传递给专用的图像生成机器(或两个、三个......)。生成器上的脚本应该返回结果并将其写入磁盘。 Cron 和 rsync 可以处理与静态内容服务器的同步。 如果您在配置方面需要帮助,请针对具体问题发布新帖子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2011-03-26
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 2019-03-17
      • 2014-11-26
      相关资源
      最近更新 更多