【问题标题】:Serving dynamically generated images using Nginx and FastCGI使用 Nginx 和 FastCGI 提供动态生成的图像
【发布时间】:2011-08-25 16:05:15
【问题描述】:

我正在使用 Nginx,并且需要能够即时生成图像。当客户端发送图像请求时,我需要运行外部程序来生成图像。外部程序将生成的图像留在文件系统中。

似乎最简单的方法是编写一个运行外部程序的 FastCGI 脚本,然后从文件系统中读取图像,通过 FastCGI 将其传输到 nginx。

但是,这似乎效率低下,因为我需要编写自己的文件复制例程,并将文件从磁盘复制到本地缓冲区,然后到 FastCGI 传输到 nginx 的数据包中,然后再到 nginx 的缓冲区中,然后最后成包发送给客户端。似乎利用 nginx 有效地提供静态内容的能力会更有效。

理想情况下,我想要一些方法让 nginx 等到图像生成后,然后从磁盘提供它。另一个想法是,FastCGI 响应可能会使用某种标头指示 nginx 实际上应该去提供文件,而不是来自 FastCGI 脚本的响应。这两种方法都可行吗?

【问题讨论】:

    标签: image nginx fastcgi


    【解决方案1】:

    X-Accel-Redirect - 正是您要找的。
    使用示例可以在这里找到:http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/

    Nginx 是异步的,因此它会为所有其他连接提供服务,而无需等待来自您的 FastCGI 脚本的数据。

    【讨论】:

      猜你喜欢
      • 2010-11-07
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2014-05-18
      • 2017-05-29
      • 1970-01-01
      • 2018-04-04
      • 2013-09-28
      相关资源
      最近更新 更多