为什么我们不能使用 aiohttp 为生产提供静态文件?

why cant we use aiohttp to serve static files for production?

在阅读 aiohttp 服务器文档时,我遇到了这个

警告 add_static() 仅用于开发。在生产中,静态内容应由 nginx 或 apache 等 Web 服务器处理。

为什么我们不能使用 aiohttp 来提供静态文件?

Why cant we use aiohttp to serve static files?

您可以使用 aiohttp 提供静态服务,但您不应该这样做。

aiohttp 这样的 Web 框架专门提供方便 API 来创建动态生成的响应(如网页)。他们并不专注于以最高效和最安全的方式提供响应。

另一方面,像 NGINX 这样的服务器专门提供服务。他们可以更高效(C 代码速度、多核利用率、缓存)和安全(防止常见攻击、IP 过滤等)。

由于静态文件不是动态生成的,因此无需 aiohttp 参与服务。专门的服务器将更好地处理他们的服务。将这项工作委托给他们是一种常见的做法。