gpt4 book ai didi

使用 ProxyPass 后 apache 请求非常慢

转载 作者:行者123 更新时间:2023-11-28 21:47:16 24 4
gpt4 key购买 nike

因此,我在 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 更新:

http://marc.info/?l=apache-httpd-dev&m=144543644225945&w=2

最佳答案

尝试显式调整 ProxyReceiveBufferSize :

# For increase throughput (bytes)
ProxyReceiveBufferSize 2048

关于使用 ProxyPass 后 apache 请求非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33284526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com