- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
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 是很好的选择。
因为网络服务器嵌入在您的应用程序中,您可以轻松地在任何环境中测试和调试完全相同的代码。这种开发和生产对等使得在开发周期中解决问题变得容易。”
在我看来,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。
关于python - 澄清 : Does Heroku Run Python Apps Behind Nginx or Not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12810292/
我正在尝试制作一个 WPF 信使程序我的解决方案包含 app.xaml & app.xaml.cs , mainwindow.xaml & mainwindow.xaml.cs还有另外两个 xaml
我正在尝试编写一个正则表达式替换模式,以便替换散列中的数字,如下所示: regexr link some_dict = { TEST: 123 } 这样就可以捕获和替换 123 个。(? " T
我有一个运行良好的 Blazor(服务器)应用程序,它遵守 Microsoft.CodeAnalysis.FxCopAnalyzers 设置的所有规则和 StyleCop.Analyzers . 一个
我想知道从 Code-Behind 访问 aspx 和 aspx 到 Code-Behind 页面的快捷键。 最佳答案 一个相当明确的答复 从 .ASPX 页面到代码隐藏按 F7 从 CodeBehi
我又在与正则表达式作斗争了。我一直在尝试添加使用转义字符来转义自定义标记,例如 至 和 至 .在乔治的帮助下,here , 在尝试转义方法之前,以下表达式会产生所需的结果。 ('This is a
您如何向非技术人员解释为什么在 onclick 事件背后编写代码(业务逻辑)是一种不好的做法并导致无法维护的代码? 编辑: 我必须向管理层解释为什么需要进行一些重构,以及为什么有些代码没有通过代码审查
这个问题在这里已经有了答案: Meaning of Github Ahead/Behind Metrics (4 个答案) 关闭 7 年前。 我是 git 社区的新手,我使用源代码树来可视化它,但我
我的 Activity 中有一个 BottomSheet。 我正在调用 behavior.setState(BottomSheetBehavior.STATE_EXPANDED); 来显示 Botto
在此 Java 代码中: public class Main { public static void main(String[] args) { "".matches("(?
这个问题已经有答案了: Abstract class in Java (15 个回答) 已关闭 9 年前。 抽象类背后的整个概念到底是什么(在我的例子中我指的是java)。我知道它太笼统而无法自行实现
是否有可能在它的父元素的背景后面得到一个 CSS 伪 :after 元素? :after 的背景包含与父元素背景相同的尺寸。所以目前它看起来像这样: 但我希望红色背景 (:after) 位于父元素的后
我对 C 的经验很少,但被要求将 C 程序转换为 R。有一点让我感到困扰: 我有一个接受 int 的函数 int a 在函数中我有一个数组: double b[3] = { 1.8293
我是 Git 和 Github 的新手。我有一个包含 2 个分支的 repo 协议(protocol):Master 和 Develop。 Master 是基础分支,被认为是稳定分支(这是我的网络服务
假设我想以旧方式复制两个对象: var firstObj = { key1: "val1", key2: "val2" } var secondObj = { key1: "val1",
我的网站有不同的行为,具体取决于用户详细信息(例如位置...),我手动测试的方式是使用代理浏览网站,此测试是否可以使用 Browserstack 进行? 换句话说,我可以指定浏览器堆栈在浏览我的网站时
我的网站有不同的行为,具体取决于用户详细信息(例如位置...),我手动测试的方式是使用代理浏览网站,此测试是否可以使用 Browserstack 进行? 换句话说,我可以指定浏览器堆栈在浏览我的网站时
我只是想知道接口(interface)中的抽象方法是如何做这些事情的。例如,在 MouseMotionListener 接口(interface)中,我必须实现 2 个抽象方法,即: void mou
我正在尝试使用 jquery 和 keydown 事件捕获用户输入。 这是我的代码: $(document).ready(function() { $("#searchText").
我知道Python对象名称的本质只不过是可以附加到任何对象的“标签”,并且变量总是通过引用传递。但是如果我需要不同的行为怎么办? 为了说明这一点,我做了一个简短的例子: class car:
我正在笔记本电脑(无法访问互联网)上为我本地的高级中心设置一个宾果调用板系统,以通过屏幕投影仪系统使用。我在本地保存的 html 文件中执行此操作,以便在网络浏览器中打开,并且我已经让大部分系统都能正
我是一名优秀的程序员,十分优秀!