繁体   English   中英

Apache2服务的HTTPS请求比通过反向代理服务慢

[英]HTTPS request served by Apache2 slower than via Reverse Proxy

我的情况:
网站是使用ubuntu服务器上的默认apache2安装托管的。 使用HTTPS和自签名证书(用于开发)在端口443上提供服务。

现在,我有一个用golang编写的简单服务,它侦听端口8080并充当反向代理以接收https请求,将其转发到本地apache,并将响应返回给客户端。 该Web服务不缓存任何文件,仅转发请求。
代码: https//play.golang.org/p/tnfKVWyLuZQ

我的问题”:
与通过我的反向代理(即https://foo.com:8080/bar/ )调用网站相比,直接调用apache(即https://foo.com/bar/ )要慢得多(200-400ms)。

为什么直接调用apache2较慢? 我期望使用反向代理而不是加速会产生开销。 ->示例页面比较: https//i.imgur.com/TqznM2v.png


更新 :显示当前设置的草图: 当前设置

关于编码 :在两种情况下,编码都是一致的:两种情况下(情况1与情况2),编码标头和Content-Length相同,客户端也收到文件大小。 不确定为什么在HAR Viewer中仅在第二种情况下显示未压缩的大小。 如果使用Chrome浏览器,两种情况下都可以看到压缩后的大小。

更新#2 :我得出的结论是,在默认配置中,golang实现比apache2更有效地处理了来自同一客户端的多个请求。 Sicne我只测试了很少的客户端,我无法说它的扩展性如何-我认为Web服务在负载下会落后。
我认为这是封闭的,感谢大家的帮助。

据我所见。 有两个可能的原因。

  1. apache反向代理处理的某些缓存包含静态文件,例如图像,css或javascript。
  2. 当您浏览https网址时。 一个名为“ ssl证书卸载”的过程将会发生,它可能会导致巨大的服务器负载。 因此,如果将Web应用程序和ssl证书部署在同一服务器上,则负载可能会导致高延迟。 通常,我们使用一个名为load-balancer的特殊设备来卸载ssl证书,就像反向代理一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM