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

Mer*_*ero 3 python-3.x python-asyncio aiohttp

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

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

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

Mik*_*mov 5

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

您可以使用aiohttp静态服务,但不应该。

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

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

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