【问题标题】:http server using python & gevent(not using apache) [closed]使用 python 和 gevent 的 http 服务器(不使用 apache)[关闭]
【发布时间】:2025-12-26 18:35:12
【问题描述】:

只是用python & gevent.server 来服务一个简单的登录服务器(只是检查一些数据并做一些db操作),当它受到ddos攻击时会不会有问题?

如果使用 apache/ngnix 来处理 http 请求会更好吗?

【问题讨论】:

    标签: python apache nginx gevent httpserver


    【解决方案1】:

    如果你使用 gevent.server 来实现你自己的 HTTP 服务器,我建议不要这样做,你应该使用 gevent.pywsgi,它提供了一个功能齐全、稳定且经过全面测试的 HTTP 服务器。它不如 gevent.wsgi 快,后者由 libevent-http 提供支持,但具有您可能需要的更多功能,例如 HTTPS。

    Gevent 比 Apache 更有可能在 DDOS 攻击中幸存下来,但在这方面 nginx 和 gevent 一样好,尽管我不明白如果你可以在纯 Python 服务器上做得很好,为什么还要使用它。如果您通过同一服务器有多个后端,那么使用 nginx 就是这种情况,例如您的身份验证服务器以及一些静态文件服务(可以完全由 nginx 完成)以及可能的其他子系统或其他虚拟主机,所有这些都可以通过单个 nginx 配置提供服务。

    【讨论】:

      【解决方案2】:

      在我看来,使用纯 Python 服务器永远无法获得与使用主流 Web 服务器(如 Apache 和 Nginx)相同的安全级别。

      这些在发布之前都经过了充分测试,因此,通过使用稳定的构建并正确配置它,您将接近最大可能的安全性。

      Pure-python 服务器在开发过程中非常有用,但我不知道有什么可以与它们竞争安全测试/错误报告/快速修复。

      这就是为什么通常建议将这些服务器之一放在纯 python 中的服务器之前的原因,例如使用 ProxyPass 之类的选项。

      【讨论】:

      • 我同意这一点。不要将你的 Python 应用程序暴露给世界。 Gevent 的 WSGI 服务器从未经过安全性或 DDOS 生存审查。把Nginx放在前面。