Error Log:
upstream response is buffered to a temporary file "xxx" while reading upstream
client request body is buffered to a temporary file "xxx"
Upstream timed out (110: Connection timed out) while reading response header from upstream
若是你的 Nginx 沒有進行調整 body buffer 等設定就會在 error.log 常常看到這樣的訊息
situation.1
在觸發 response buffered 的時候通常是你預設 nginx 緩衝的 body size 預存的記憶體已經不敷使用了,所以採用檔案寫入的方式,這不算是一個嚴重的錯誤,但是因為是硬碟進行讀寫,所以效能會緩慢非常多!
此時你必須在 Nginx 設定中加入以下
server {
...
client_max_body_size 100m;
client_body_buffer_size 102400k;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
...
}
加大 nginx 在處理 body 時的 buffer,實際的應用資源就看你的記憶體大小而定,可以有效的加速文章編輯的處理速度!
situation.2
如果你在編輯文章時,時常等待很久甚至導致失敗,從 error.log 又出現 response Connection time out 等訊息,通常有可能和 situation.1 同時有連帶關係,若是處理太慢就會導致 connection time out,但若是你的頁面資料實在太多,真的必須處理這麼久的話可以加入 timeout
延長 php-cgi 的 timeout 時間
server {
...
location ~* .php$ {
...
fastcgi_read_timeout 150;
...
}
...
}
若是你有採用 proxy 也必須在 nginx proxy 加入 timeout,避免 proxy 直接放棄此工作,將會造成 AP 不必要的資源佔用。
server {
...
location / {
...
proxy_read_timeout 150;
...
}
...
}
Orignal From: Nginx 優化你的網站文章編輯效能
沒有留言:
張貼留言