アーキテクチャの決定について皆さんの意見を聞きたいです。
高性能なアップロード サーバーを構築しています。サーバーの目的は、簡単に言えば、クライアントから膨大な量のファイルを受け取り、NAS に保存することです。
要件は次のとおりです。
- ファイルは、"multipart/form-data" エンコーディングで HTTP POST 経由でアップロードされます。
- 各ファイルの長さは、少なくとも数メガバイトになります。
- クライアントは、コンピューター上のブラウザーとモバイル クライアントです。
- クライアントの少なくとも 50% はモバイル クライアントになるため、これらの TCP/IP セッションはかなり長くなると予想されます。
- Slowlorisの攻撃の影響を受けないはずです。
- ターゲット プラットフォームは Linux CentOS 6.2 です。
- サーバーがファイルを受信すると、データベースに情報を保存し、認証を実行します。
私の現在のアプローチは、 Boost Asioを使用して自分ですべて (http 解析など) を実装することです。データで何が起こるかをより細かく制御できるので、気に入っています。メモリマップファイルを使用して、ソケットから直接ファイルに書き込むことを考えています。
Nginxの拡張機能として実装する方が簡単だと思いますか? 上記の要件を考えると、Nginx は実行可能なオプションですか?