为什么我在 apache2.2 上使用 proxypass 时没有设置 http 标头

为什么我在 apache2.2 上使用 proxypass 时没有设置 http 标头

我有一个安装了 mod_proxy 和 mod_headers 的 apache2.2 服务器。在使用指令运行的请求中ProxyPass,所有Header set指令均不起作用,即响应中未设置标头。

但是,如果我删除该ProxyPass指令,则会设置标头。是否有一些配置可以在使用 mod_proxy 时禁用设置标头?

答案1

尽管Apache mod_headersdoc 说 Header 行放在哪里并不重要,但显然它很重要。我添加 header 的唯一方法是将其放在与代理传递相同的位置范围内。

我最初直接在 VirtualHost 标签中定义了代理传递,但必须将其移到 LocationMatch 子标签中。

<LocationMatch "/myapp">
    ProxyPass http://1.1.1.1:8080/myapp disablereuse=On
    ProxyPassReverse http://1.1.1.1:8080/myapp
    Header add X-UA-Compatible "IE=7"
</LocationMatch>

相关内容