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 云平台会处理这些服务器通常为您做的所有事情。
您的应用程序只是提供了一个 Python 服务器来响应 HTTP 请求。Gunicorn、Gevent 和 Eventlet 是很好的选择。
由于 Web 服务器嵌入在您的应用程序中,因此您可以在任何环境中轻松测试和调试完全相同的代码。这种开发和生产平价让您在开发周期中轻松解决问题。”
在我看来,Heroku 处理了反向代理的一些好处,但没有压缩。真的吗?