我在一些后端服务器前面将Apache服务器设置为反向代理。其中一个后端服务器需要基本身份验证,但不知何故,Apache似乎从请求中删除了Authorization标头。
我是否必须配置一些特殊内容才能使Apache将Authorization标头传递给后端服务器?
我的Apache配置非常基础。我只添加了一些代理指令,如:
ProxyRequests Off
ProxyPass /backend-server https://backend.server
SSLProxyEngine on
答案 0 :(得分:1)
您必须设置proxy-chain-auth
环境变量:
如果代理需要身份验证,它将读取并使用 客户端发送的代理身份验证凭据。同 proxy-chain-auth它还会将凭证转发给下一个 链中的代理。如果你有一个链子,这可能是必要的 共享身份验证信息的代理。安全警告:做 除非你知道你需要它,否则不要设置它,因为它转发敏感 信息!
http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html
<Location />
AuthType basic
SetEnv proxy-chain-auth
</Location>
答案 1 :(得分:0)
事实证明,Apache并没有删除授权标头,而是我们网络中的其他防火墙组件。
我们更改了防火墙中的设置,现在上面的ProxyPass指令工作正常!