我想听听你们对架构决策的看法。
我正在构建高性能上传服务器。简单来说,服务器的目的是从客户端接收大量文件并将它们保存在 NAS 上。
要求是:
- 文件将通过“multipart/form-data”编码的 HTTP POST 上传。
- 每个文件至少有几兆字节长。
- 客户端是计算机和移动客户端上的浏览器。
- 因为至少 50% 的客户端是移动客户端,所以我预计这些 TCP/IP 会话会很长。
- 它不应该受到Slowloris攻击的影响。
- 目标平台是 Linux CentOS 6.2。
- 当服务器接收文件时,它会将一些信息保存到数据库中,执行身份验证等。
我目前的方法是使用Boost Asio自己实现所有内容(http 解析等)。我喜欢它,因为我可以更好地控制数据发生的事情。我正在考虑使用内存映射文件直接从套接字将其写入文件。
你会说将它实现为Nginx的扩展可能更容易吗?考虑到上面列出的要求,Nginx 是一个可行的选择吗?