nginx fastcgi buffers影響頁面輸出數據大小記錄

一臺測試服務器因爲沒作fastcgi_buffer單獨設置,在跑一個顯示10w條數據的循環輸出時只能顯示4700-5200條記錄php

<?php
$str = '';
for($i = 0; $i < 100000;$i++)
{
    //echo $i."<br>";
    $str .= $i."<br>";
}
echo $str;
?>

訪問測試獲得數據不完整,查看nginx手冊後發現緣由在於fastcgi_buffer設置nginx

增長 fastcgi_buffers 256 128k;數據顯示正常服務器

關於這個參數的解釋:測試

fastcgi_buffersspa

語法:fastcgi_buffers the_number is_size;
默認值:fastcgi_buffers 8 4k/8k;
使用字段:http, server, location
這個參數指定了從FastCGI進程到來的應答,本地將用多少和多大的緩衝區讀取。
fastcgi_buffers能夠設置爲你的FastCGI返回的大部分應答大小,這樣能夠處理大部分的請求,較大的請求將被緩衝到磁盤。
若是想關閉對全部請求道磁盤的緩衝,能夠將fastcgi_max_temp_file_size 設置爲0。
fastcgi_buffer等於:fastcgi_buffer_size + the_number * is_size
若是一個fastcgi應答爲12k,那麼fastcgi_buffers 64 4k將分配3個4k的buffer。這即是爲何fastcgi_buffers有兩個參數,而fastcgi_buffer_size(用於應答頭與應答的第一部分)只有1個參數,在fastcgi_buffer_size被清空後,它們和fastcgi_buffers一塊兒被使用。
例如:code

相關文章
相關標籤/搜索