如果 Apache 服务器充当终止 SSL 连接的反向代理,它是否能够缓存响应?我知道使用 SSL 加密的响应本身无法缓存,但如果 Apache 终止 SSL 连接,它应该可以访问未加密的响应。为澄清起见,该站点的当前 Apache 配置如下:
<VirtualHost *:80>
ServerName api.beta.robocubs4205.com
Redirect permanent / https://api.beta.robocubs4205.com
</VirtualHost>
<VirtualHost *:443>
ServerName api.beta.robocubs4205.com
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/beta.robocubs4205.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/beta.robocubs4205.com/privkey.p$
ProxyRequests Off
ProxyPass "/" "http://127.0.0.1:8080/"
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
请注意,ProxyPass 指令代理的是 http 而不是 https。我可以在这种情况下添加缓存吗?如果可以,我可以使用与普通 http 缓存相同的配置来执行此操作吗,还是我需要做一些特殊的事情?此外,如果我发布的配置中存在任何重大安全漏洞,请随时指出。
编辑:如果使用 SSLProxyEngine 通过 https 代理到另一台服务器,答案会相同吗?
答案1
我不明白为什么不行,但你的 Web 应用程序需要非常明确地使用 Cache-Control 标头。虽然 http 的默认设置是缓存,但 https 的默认设置是不缓存(请注意,这些不是官方的,但浏览器通常会这样做)。如果您的应用程序依赖于默认行为,并且没有在每一个响应那么当你切换到 https 时你可能会发现奇怪的事情发生。