微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

澄清:Heroku是否在Nginx背后运行Python应用程序?

TL / DR:我的主要问题:是否值得花时间尝试将Nginx添加到我的Django / Gunicorn / Cedar / Postgressql应用程序中,或者Heroku是否为我做了这种类型的性能改进?

在Cedar文档(https://devcenter.heroku.com/articles/cedar)中,它明确指出雪松不支持反向代理. “Cedar不包括反向代理缓存,如Varnish,更愿意让开发人员选择最能满足其需求的CDN解决方案.”

再次在路由文章(https://devcenter.heroku.com/articles/http-routing#gzipped-responses)中,指定Nginx不会自动完成:’因为对Cedar应用程序的请求直接发送到应用程序服务器 – 不通过像Nginx这样的HTTP服务器代理 – 任何响应压缩都必须在你的应用程序中完成.“

但是,在Python Faq中,它反正说:https://devcenter.heroku.com/articles/python-faq#do-python-applications-run-behind-nginx
“不.没有必要在Heroku上使用反向代理,因为Heroku云平台负责处理这些服务器通常为您做的一切.

您的应用程序只是提供一个Python服务器来响应HTTP请求.Gunicorn,Gevent和Eventlet是很好的选择.

由于Web服务器嵌入在您的应用程序中,因此您可以在任何环境中轻松地测试和调试完全相同的代码.这种开发和生产平价使您可以轻松地在开发周期中解决问题.“

在我看来,像Heroku处理反向代理的一些好处,但不是压缩.真的吗?

解决方法:

听说Heroku支持

We do not recommend trying to add Nginx to your stack, nor does Heroku provide that layer. But you are correct that if you wish to gzip responses, your application must gzip the responses – this is often handled in application framework (e.g. Ruby’s Rack) as a middleware layer. gzip is extremely fast and this should not add any significant latency to your requests.

这证实您不需要在Heroku上运行Nginx的反向代理功能.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐