BFa*_*Far 5 python nginx heroku
TL / DR:我的主要问题:是否值得花时间尝试将NGinx添加到我的Django / Gunicorn / Cedar / PostgresSql应用程序中,或者Heroku是否为我实现了这种性能改进?
在Cedar文档(https://devcenter.heroku.com/articles/cedar)中,它明确指出cedar不支持反向代理。“ Cedar不包括诸如Varnish之类的反向代理缓存,而是希望使开发人员能够选择最能满足其需求的CDN解决方案。”
同样在“路由”文章(https://devcenter.heroku.com/articles/http-routing#gzipped-responses)中,指定了nginx不会自动完成:“因为对Cedar应用程序的请求是直接向应用程序服务器发出的–不通过像nginx这样的HTTP服务器进行代理–必须在您的应用程序内完成响应的任何压缩。”
但是,在Python常见问题解答中,它表示 相反:https : //devcenter.heroku.com/articles/python-faq#do-python-applications-run-behind-nginx “不。不需要使用反向代理在Heroku上运行,因为Heroku Cloud Platform会处理这些服务器通常为您所做的一切。
您的应用程序仅提供一个Python服务器来响应HTTP请求.Gunicorn,Gevent和Eventlet是绝佳的选择。
由于Web服务器是嵌入在您的应用程序中的,因此您可以在任何环境中轻松测试和调试完全相同的代码。这种开发和生产上的均等性使得在开发周期中解决问题变得很容易。”
在我看来,Heroku可以解决反向代理的某些好处,但不能解决压缩问题。真的吗?
收到 Heroku 支持的回复:
我们不建议尝试将 nginx 添加到您的堆栈中,Heroku 也不提供该层。但是您是正确的,如果您希望 gzip 响应,您的应用程序必须 gzip 响应 - 这通常在应用程序框架(例如 Ruby 的 Rack)中作为中间件层处理。gzip 非常快,这不会给您的请求增加任何明显的延迟。
这确认您不需要在 Heroku 上运行 Nginx 以实现其反向代理功能。
| 归档时间: |
|
| 查看次数: |
1268 次 |
| 最近记录: |