使用 Rails 发送大回复

Sending big responses with Rails

我正在实现一个带有 rails 后端的小型网络邮件,该后端与 IMAP 服务器通信。问题是,当我检索一些原始数据时,如果附件很大(甚至 6/7 mb),webrick 发送它需要很长时间。

如何提高发送 "big data" 的性能?有没有更合适的网络服务器?

(我还没有尝试过另一个,因为我还处于开发的早期阶段)

Webrick 绝对不是最好的 Web 服务器。大多数 Rails 应用程序使用前端代理(通常是 Nginx 或 Apache)和后端 Rack 兼容 Web 服务器(例如 Unicorn、Puma、Passenger 等)的组合。

您可能想要做的是避免数据被Ruby 进程发送,否则Ruby 可能不得不将文件加载到内存中。例如,您可以让 Nginx 使用 Rack send-file 功能直接为文件提供服务,Rails 使用 send_file.

也支持该功能