2012-09-28

LINUX - server 上傳大檔的設定


環境 : squid, lighttpd v1.4.25, php v5.4.6
目標 : 可以上傳 5g 的單檔

/home/squid/etc/squid.conf
request_body_max_size 5000 MB
/home/lighttpd/etc/lighttpd.conf
server.max-request-size = 5000000000
server.network-backend="write"
server.upload-dirs=( "/home/www/nas/home0/_vlog/upload" ) # 不然會到 /var/tmp/lighttpd-upload* 裡去
# 上述 dir 會留一堆 files, 看要不要寫 cron 去清
/home/php/lib/php.ini
max_execution_time = 900
max_input_time = 1800
memory_limit = 128M
post_max_size = 5000M
upload_tmp_dir = "/home/www/nas/home0/_vlog/upload/"
upload_max_filesize = 5000M
default_socket_timeout = 60 # 超過 4g 改了也沒用, 一樣有 socket error

利用 NetBalancer 來對上傳做限速, 測試一下比較慢的網路環境
(cf : http://briian.com/?p=7208)
設定為 2Mb/s 的網路環境(注意是 bit)
2Mb/s(256KB) 的網速的測試結果
1. 上傳 2.4g => 約要傳 3h => 成功上傳並轉好了, 轉了約 70min
2. 上傳 3.86g => 約要傳 5h => 成功上傳並轉好了; 轉了約 65min


後記
========================================================
一開始原本是開到 10g, 測了單檔 6.5g 時, swfuploader 會說檔案大小會 0...
所以用了 html 的傳統上傳. 但在 ie8 lighttpd 會有以下 error
2012-09-14 09:18:07: (request.c.867) content-length broken: -155650137 -> 400
改用 chrome 可以傳, 但到最後會有
(mod_fastcgi.c.3422) error: unexpected close of fastcgi connection for /default.php? (no fastcgi process on socket: unix:/home/logs/lighttpd/php-fastcgi.socket-5 ?) 4
然後自己鬼打牆重傳...

試著改 php.ini 裡的 default_socket_timeout (由 60 改為 1800) 但一樣不行...
稍後試了 4,87g 與 4.36g 的檔案也是一樣的情況...Orz

結論 : 手上有的檔案, 最大只能到 3.86g, 應該還夠用吧, 就先這樣了~


cf :
http://doggypa.blogspot.tw/2009/06/lighttpd-web-server-configure-issues.html


沒有留言:

張貼留言