问题 :
对于 HTTPS 请求,我的代理会从响应中删除自定义标头:
HTTP 请求:
$ curl -I -x 127.0.0.1:5566 http://www.google.fr
HTTP/1.1 200 OK
...
X-Servedby: 50001 => My custom header is added to the response
完整回复:https://gist.github.com/vdaubry/eafabf211957cbe87563
HTTPS 请求:
$ curl -I -x 127.0.0.1:5566 https://www.google.fr
HTTP/1.1 200 Connection established
Proxy-Agent: Privoxy/3.0.23
X-Servedby: 50001 => doesn't appear in the final response
HTTP/1.1 200 OK
Date: Sat, 07 Feb 2015 16:29:25 GMT
...
Vary: Accept-Encoding
完整回复:https://gist.github.com/vdaubry/2869d85b2e8affdc5a8c
我不明白为什么在连接打开时添加了自定义标头,但在最终响应中却没有添加?
更多信息:
我有 HAProxy 负载平衡请求到多个 Privoxy 实例。HAProxy 正在将 privoxy 实例名称添加到自定义标头“X-Servedby”中的响应中(如下所示:如何获取已在前端部分提供请求服务的服务器的名称?)
它与 HTTP 请求配合良好,但自定义标头在 HTTPS 请求中会被丢弃
Privoxy 设置为透明代理(accept-intercepted-requests=1)。文档中说
请注意,不支持拦截加密连接(HTTPS)。
不确定这是否与问题有关?
答案1
如果我没看错的话,您已经发现了问题所在。您的真正问题似乎是“使用 HTTPS 时未添加标头” - 对吗?代理负责插入标头?
如果是这种情况,则不拦截 HTTPS 就无法完成此操作,因为除一个标头(主机)之外的所有标头都是加密的。