【发布时间】:2013-12-08 03:10:09
【问题描述】:
我最近有一个 nginx + php-fpm 服务器,它提供如下图像:
header('Content-Type: image/png');
echo file_get_contents('example_image.png');
exit();
我意识到,无论图像是否被缓存,服务器上的性能都会受到巨大影响。 CPU 利用率非常高,100% 的连接数量很少。所以我开始将图像卸载到 CDN,性能立即得到提升,但在某些情况下,我仍然需要通过服务器提供图像,这让我想到了图像/媒体服务器的想法。
我的问题是,我应该使用特定类型的服务器吗?一个可以与数据库通信以查找图像位置并提供服务的设备?文件系统类型?或者我最好还是继续启动另一个 nginx + php-fpm 实例并创建一个类似 cdn 的结构实现,其中:
media.example.com
仅指向该服务器,因此对 Web 服务器没有性能影响?
【问题讨论】:
-
为什么不直接通过 nginx 提供图片呢?你真的需要 PHP 吗?
-
该示例并不完全准确,因为图像与 ids 相关,因此它会查找图像位置存储在数据库中的位置,然后提供它。
标签: php postgresql image-processing nginx media