【发布时间】:2011-08-25 16:05:15
【问题描述】:
我正在使用 Nginx,并且需要能够即时生成图像。当客户端发送图像请求时,我需要运行外部程序来生成图像。外部程序将生成的图像留在文件系统中。
似乎最简单的方法是编写一个运行外部程序的 FastCGI 脚本,然后从文件系统中读取图像,通过 FastCGI 将其传输到 nginx。
但是,这似乎效率低下,因为我需要编写自己的文件复制例程,并将文件从磁盘复制到本地缓冲区,然后到 FastCGI 传输到 nginx 的数据包中,然后再到 nginx 的缓冲区中,然后最后成包发送给客户端。似乎利用 nginx 有效地提供静态内容的能力会更有效。
理想情况下,我想要一些方法让 nginx 等到图像生成后,然后从磁盘提供它。另一个想法是,FastCGI 响应可能会使用某种标头指示 nginx 实际上应该去提供文件,而不是来自 FastCGI 脚本的响应。这两种方法都可行吗?
【问题讨论】: