我几乎所有关于在Heroku上部署Python的描述基本上都是:
gunicorn
添加到`requirements.txt web: gunicorn wsgi:application
添加到Procfile
Heroku docs基本上也是一样的。
然而,Gunicorn docs非常清楚地表明它最好在HTTP代理服务器后面使用Gunicorn"并且它特别推荐Nginx。 Heroku没有提到这个,没有其他人这样做。事实上,我知道在Heroku上运行Gunicorn的每个人都将其作为独立服务器运行。使用WhiteNoise,您甚至可以相当有效地提供静态文件,因此在流量和费用超出可接受范围之前,这不是一个大问题。
Heroku的HTTP路由是否处理了很多Gunicorn没有(慢速攻击等)的情况,这使得它安全,或者是所有这些人(包括Heroku)只是采取技术性的低路,因为它更容易?
答案 0 :(得分:2)
此实例中的Heroku is the proxy server。
答案 1 :(得分:1)
你是对的:推荐gunicorn的人正在走技术低路,因为它更容易。
Heroku确实提供some buffering,但它不足以防止慢速类型攻击。
这里有一篇不错的博文,更详细地解释了: http://blog.etianen.com/blog/2014/01/19/gunicorn-heroku-django/
推荐的解决方案是使用Waitress,它是纯Python的webserver,可以正确处理缓冲。