gpt4 book ai didi

python - 如果我不提供任何静态内容,我是否需要 Nginx 和 Gunicorn?

转载 作者:行者123 更新时间:2023-12-04 04:24:41 29 4
gpt4 key购买 nike

在典型的 Python 服务器设置中,建议让 Nginx Web 服务器提供静态内容并将动态请求代理到 Gunicorn 应用服务器。
现在,如果我不通过我的 python 应用程序提供任何静态内容,我还需要在 Gunicorn 前面使用 Nginx 吗?有什么好处?
详细的解释将不胜感激。

所有静态内容都通过 CDN 提供,后端服务器只需要提供 API(REST)。所以当我只提供动态内容时,我需要 Nginx 吗?在高负载等情况下它有什么优势吗?

最佳答案

不,你真的不需要 Nginx。
但是 这是互联网:您的服务器将收到大量由机器人和漏洞扫描程序脚本发出的格式错误的 HTTP 请求。现在,您的 Gunicorn 进程将忙于解析和处理这些请求,而不是为真正的客户提供服务。
使用前面的 Nginx,它将终止这些请求而不转发到您的 Gunicorn 后端。
这些机器人中的大多数都会向您的 IP 地址而不是您的域名发出请求。因此,将 Nginx 配置为忽略对 IP 地址的请求并仅提供对您的域的请求非常容易。这比依赖 Django 的 ALLOWED_HOSTS 安全和快捷得多。设置。
此外,为 Nginx 找到有关保护服务器的资源要容易得多,例如将流氓 IP 地址或用户代理列入黑名单等。比较这两个谷歌搜索:nginx ban ip对比 gunicorn ban ip .可以看到 Nginx 搜索有更多的资源。
如果您担心性能,那么请放心,Nginx 不会成为瓶颈。如果你真的想优化性能,数据库查询将是第一个开始的地方。

关于python - 如果我不提供任何静态内容,我是否需要 Nginx 和 Gunicorn?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089648/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com