- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我在 Windows Server 2012 上的 Apache(2.4) 后面运行 Tomcat(8.0),并使用 ProxyPass 传递所有流量。一切正常,但每当我在 60 秒内什么都不做,然后再次访问服务器时,我会延迟 8-20 秒,就像 apache 正在创建一个新进程来处理请求一样。
我的配置几乎是 Apache Haus 的默认配置,添加了代理的东西,我认为这是罪魁祸首:
ProxyPass /static/ !
ProxyPass / http://localhost:8088/
ProxyPassReverse / http://localhost:8088/
我添加了
/static/ !
豁免以查看正在提供的静态文件是否会发生同样的问题,显然确实如此。我通过注释掉所有 ProxyPass 内容并验证我的静态文件始终快速加载来进一步缩小范围。然后我取消注释 ProxyPass 的东西,只请求我的静态文件,它又总是快速返回。但是一旦我点击了一个 URL 使我通过代理,等一下,然后再次点击它,就出现了可怕的错误。下面是两个请求的网络监视器输出,第一个是在 代理使用之前延迟 1 分钟后第二次请求静态文件,另一个是在代理被使用两次之后代理请求之间有延迟。
3501 4:17:48 PM 10/21/2015 104.2752287 httpd.exe HTTP HTTP:Request, GET /static/index.html
3502 4:17:48 PM 10/21/2015 104.2760830 httpd.exe HTTP HTTP:Response, HTTP/1.1, Status: Not modified, URL: /static/index.html
之后(返回 8 秒):
24232 4:26:13 PM 10/21/2015 608.7355960 httpd.exe HTTP HTTP:Request, GET /static/index.html
24775 4:26:20 PM 10/21/2015 616.0896861 httpd.exe HTTP HTTP:Response, HTTP/1.1, Status: Not modified, URL: /static/index.html
我注意到这条 SynReTransmit 线在它最初被破坏后更多,不确定它是否相关:
24226 4:26:13 PM 10/21/2015 608.7286692 httpd.exe TCP TCP:[SynReTransmit #24107]Flags=......S., SrcPort=61726, DstPort=HTTP(80), PayloadLen=0, Seq=1157444168, Ack=0, Win=8192 ( Negotiating scale factor 0x2 ) = 8192
但基本上每次调用,无论是针对静态文件还是通过代理,如果自上次调用以来已超过 60 秒,将需要很长时间才能得到响应!
有什么想法吗?
更新:我运行的是稍旧版本的 Apache,2.4.12,但更新到最新版本 2.4.17,并没有修复它。我已经尝试了各种 keepalive 设置,似乎没有任何帮助。在另一个论坛上,我被引导到这个 apache 开发线程,它有一个针对类似问题的建议补丁,我想我会等待 apache 更新:
最佳答案
尝试显式调整 ProxyReceiveBufferSize :
# For increase throughput (bytes)
ProxyReceiveBufferSize 2048
关于使用 ProxyPass 后 apache 请求非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284526/
我在设置 Proxypass 时遇到了两个问题。我已经在我的 Apache 设置中设置了 Proxypass。 例如: ProxyPass / http://www.domainname.com:80
我在给定的机器上运行了多个网络服务器(Apache、Tomcat、自定义 Python 服务器)。我让 Apache 监听端口 80,这是标准设置。为了通过此端口访问我的其他服务器之一,我在 Apac
我尝试设置 nginx,使其将请求代理到多个位置。例如。 /location1和 /location2都应该代理到 http://localhost:8080 .我只是不知道如何在不使用多个位置块的情
我有以下 nginx.conf location /monitoring/prometheus/ { resolver 172.20.0.10 valid=5s; set $prometheu
这就是我需要实现的目标我需要将所有对/public/的请求代理到另一台服务器,但对/public/forms/的请求不得被代理,而应由该 apache 服务器提供服务。 我已将这些指令添加到我的 ht
我正在尝试在我们的标准 http 代理服务器上为我的公司环境的 ActiveMQ 管理页面设置代理。我有一个规则,允许我访问管理登录页面: ProxyPass /foobar hostname:816
我最近将我们的一个网站迁移到了 Apache 2.0 和 Tomcat7 AWS,但我的 ProxyPass 指令有问题 ProxyPass / http://10.1.1.1:8080/faith/
我必须将 80 上的所有 apache 请求重定向到 8080 上的 tomcat,一条路径除外。 所以,如果接收到 http://example.com/anything --> tomcat:80
我正在使用 apache 作为反向代理,我可以对除某些 URL 之外的所有 URL 执行 ProxyPassReverse 吗?例如这是我的配置: ProxyPass /myapp http://lo
所以我使用 Apache 将特定文件夹代理到 Glassfish 实例。我的conf中的规则是: ProxyPass /folder http://localhost:28083 ProxyPassR
如果我有两个代理规则并且它们“重叠”,有没有办法指定最重要的规则? 示例(虚拟主机定义的一部分) ProxyPass /foo http://bar:8180/ ProxyPass / http://
我尝试排除所有以 "dgg-" 开头并以 ".xml" 结尾的文件,例如:dgg-file-1。 xml 使用 apache 代理。 这有效: ProxyPass /myfile.xml ! # si
我尝试了这个问题的答案。 How to merge multiple ProxyPass directives in Apache? 但是当我启动 apache 时出现错误,提示 ProxyPass|
由于 horrible, horrible errors ,我们更改了 Apache 连接到 Tomcat 的方式。我们正在使用 mod_jk : JkMount /path ajp13 现在我们使用
我在使用 mod_proxy 和 proxypass 指令时出现以下错误: 我的虚拟主机文件: LoadModule proxy_module modules/mod_proxy.so
我知道如何使用 ProxyPass 设置 apache 服务器。以便客户端可以连接到特定的 url,被重定向到另一个 url,但无法识别这一点,因为他输入的 url 仍然存在。 我必须使用 apach
我正在使用以下 Apache 配置将请求转发到 Tomcat 服务器: ProxyPass /myapp ajp://localhost:8009/myapp max=2 这是一个简化的配置,但足以重
我试图通过在 web.xml 文件中使用过滤器来锁定对我的 Tomcat WebApp 的管理部分的访问。 Remote Address Filter
我在同一台机器上使用 Apache 和 Tomcat 服务器时遇到了一些问题。我想将虚拟主机 kb.domain 重定向到 tomcat 应用程序 kb。 我已经阅读了互联网上的一些帖子,但没有找到解
这个让我抓狂。我有一个活跃且正在使用的 Apache 代理服务器在 EC2 上提供内容。它运行良好,并且具有各种配置如下的虚拟主机: ServerName m.FOO.com Ser
我是一名优秀的程序员,十分优秀!