好吧,所以每当我将这个GIF上传到我的主板(NGINX + PHP-FPM)时,我都会慢下来,直到最终504网关暂停,好吧,所以我知道你在想什么,“继续修复那些nginx.conf和php-fpm设置“,我昨晚将它们调整到接近完美,我的服务器现在运行得非常好。然而,一个特定的GIF仍然搞砸了,运行php-FPM几乎达到100%(我的服务器中有一个很棒的顶级四核处理器,我的服务器绝不是原始的)。
所以想知道它在哪里更奇怪?我已经上传了10MB的GIF,其尺寸大于实际情况(造成问题的大小约为600KB)并让服务器快速处理它们。
好的!所以让我们进入日志,error_log不输出任何与此问题有关的内容。所以我去了ahlead并在php-FPM配置中设置了一个慢速日志。
这是问题所在:
[02-Oct-2011 05:54:17] [pool www] pid 76004
script_filename = /usr/local/www/mydomain/post.php
[0x0000000805afc6d8] imagefill() /usr/local/www/mydomain/inc/post.php:159
[0x0000000805afb908] fastImageCopyResampled() /usr/local/www/mydomain/inc/post.php:107
[0x0000000805af4240] createThumbnail() /usr/local/www/mydomain/classes/upload.php:182
[0x0000000805aeb058] HandleUpload() /usr/local/www/mydomain/post.php:235
好的,让我们看看post.php(第159行以粗体显示):
if (preg_match("/png/", $system[0]) || preg_match("/gif/", $system[0])) {
$colorcount = imagecolorstotal($src_image);
if ($colorcount <= 256 && $colorcount != 0) {
imagetruecolortopalette($dst_image,true,$colorcount);
imagepalettecopy($dst_image,$src_image);
$transparentcolor = imagecolortransparent($src_image);
**imagefill($dst_image,0,0,$transparentcolor);**
imagecolortransparent($dst_image,$transparentcolor);
}
第107行:
fastImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y, $system);
upload.php,第182行(粗体):
**if (!createThumbnail($this->file_location, $this->file_thumb_location, KU_REPLYTHUMBWIDTH, KU_REPLYTHUMBHEIGHT))** { exitWithErrorPage(_gettext('Could not create thumbnail.'));
(注意,该错误未显示)
另一个post.php(第235行):
$upload_class->HandleUpload();
那我该怎么办?我怎样才能解决这个问题?我知道这是一个棘手的问题,但如果你们能给我任何意见,我们将不胜感激。
哦,如果有人好奇,这里是GIF:http://i.imgur.com/rmvau.gif
答案 0 :(得分:0)
您是否尝试在nginx配置中设置client_body_buffer_size
指令?
在此处查看更多内容:http://www.lifelinux.com/how-to-optimize-nginx-for-maximum-performance/