我的情况
网站是使用ubuntu服务器上的默认apache2安装托管的。
使用HTTPS和自签名证书(用于开发)在端口443上提供服务。
现在,我有一个用golang编写的简单服务,该服务侦听端口8080并充当反向代理以接收https请求,将其转发到本地apache并将响应返回给客户端。该Web服务不缓存任何文件,仅转发请求。
代码:https://play.golang.org/p/tnfKVWyLuZQ
我的“问题”:
直接调用apache,即https://foo.com/bar/
比通过我的反向代理,即https://foo.com:8080/bar/
为什么直接调用apache2较慢?我期望使用反向代理而不是加速会产生开销。 ->比较示例页面:https://i.imgur.com/TqznM2v.png
更新:显示当前设置的草图: Current Setup
关于编码:两种情况下的编码都是一致的:两种情况(位置1对2)的编码头和Content-Length都相同,客户端也会收到文件大小。不确定为什么在HAR Viewer中仅在第二种情况下显示未压缩的大小。如果使用Chrome浏览器,两种情况下都可以看到压缩后的大小。
更新#2 :我得出的结论是,在默认配置中,golang实现比apache2更有效地处理了来自同一客户端的多个请求。 Sicne我只测试了几个客户端,我无法说它的扩展性如何-我认为Web服务在负载下会落在后面。
我认为这已关闭,感谢大家的帮助。
答案 0 :(得分:0)
据我所知。有两个可能的原因。