高併發檔案下載伺服器配置
阿新 • • 發佈:2019-01-01
經詳細比較,發現可以用 pureftp 或者 nginx 來提供 ftp 或者 http 方式的下載服務,其中 pureftp 的併發支援更高;
pureftp 的編譯可以檢視其官網的幫助文件,介紹非常詳細,當然是英文的。
總之可以實現的功能包括:
檢視當前連線使用者(包括匿名使用者);
使用一個 chroot 目錄以保證安全;
限制最大併發使用者數以及每個使用者的頻寬;
另在 github 上可以看到 pureftp 一直有人在維護(又是外國人做的。。。)
安裝時使用
make install-strip
以去除一些除錯資訊提高效能;
參考連結:
pure-ftp 效能測試:http://blog.csdn.net/chhxo/article/details/5308646
關於效能,不要隨便修改核心引數
http://kb.cnblogs.com/page/209100/
以 nginx 做檔案下載伺服器:http://i-david.iteye.com/blog/1453635
nginx 配置:http://blog.csdn.net/b_h_l/article/details/17508499
另外,我需要在一臺伺服器上根據引數打包併發送到下載伺服器(當然此後不會重複打包而是直接提供下載連結),用 shell 指令碼實現,其中傳輸檔案部分為:
## 要先過去建立一個目錄
expect -c "
set timeout 30
spawn ssh [email protected]$host \"mkdir -p /var/ftp/$CHNO\n\"
expect {
\"(yes/no)?\" {send \"yes\n\"; expect \"*assword:\" {send \"$passwd\n\"}}
\"*assword:\" {send \"$passwd\n\"}
}
expect eof
"
expect -c "
set timeout 60
spawn scp $srcFile [email protected]$host:$dstFile
expect {
\"(yes/no)?\" {send \"yes\n\"; expect \"*assword:\" {send \"$passwd\n\"}}
\"*assword:\" {send \"$passwd\n\"}
}
expect eof
"