2011-09-13 197 views
10

簡單的問題Nginx的提供靜態大文件

http://mysite.com/bigFile.avi#此文件是800MB

當我使用這個鏈接,並從我的瀏覽器下載bigFile.avi, 我的Nginx服務器的過程中跳轉到100%的CPU負載下載會話,靜態內容,沒有PHP。 (正常的PHP腳本使用1-3%的CPU)

我不知道這對我的服務器是否正常嗎? 它消耗太多的CPU來處理大文件?

(我甚至關閉在nginx的配置gzip的,但沒有太大的區別)

回答

9

這些文章

我會承認一些超出了我。但總之,他們建議禁用sendfile,啓用aio,並在發送大型(> 4MB)文件時增加輸出緩衝區。我拿走的是,大多數默認的服務器配置假設將發送許多小文件,而不是少數或很多大文件。這兩種不同的情況可能需要一些非常不同的配置纔能有效地工作。

10

由於nginx的可以將它們發送到客戶端之前寫入磁盤中的大文件,它往往是一個好主意,禁用此緩存,如果該網站是要服務於大型靜態文件的東西,如:

location/{ 
    proxy_max_temp_file_size 0; 
}