Apache在我的设置中充当反向代理。 在端口8081上运行的应用程序服务器需要一个有效的Authorization标头。 标题由客户端应用程序设置。 Apache似乎删除这个头。 它没有到达端口8081上的服务器。
<VirtualHost mydomain.com:443> ServerName mydomain.com ServerAlias www.mydomain.com <Proxy *> Order deny,allow Allow from all </Proxy> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem ProxyPreserveHost On ProxyRequests Off ProxyPass / http://mydomain.com:8081/ ProxyPassReverse / http://mydomain.com:8081/ </VirtualHost>
要validation端口8081上的服务器是否正常工作,我将RequestHeader set Authorization "Basic XZY"到该configuration。 在这种情况下,服务器在端口8081上正确处理标题。
我也直接从客户端连接到端口8081上的服务器,以确保客户端真正设置正确的标题。 这也很好。
从mod_proxy_http文档 :
proxy-chain-auth :
如果代理需要身份validation,它将读取并使用客户端发送的代理身份validation凭据。 使用proxy-chain-auth,它也会将凭证转发给链中的下一个代理。 如果您有共享authentication信息的代理链,则这可能是必需的。 安全警告:不要设置,除非你知道你需要它,因为它转发敏感信息!
这是你想要的?
事实certificate,原因是一个错误的客户端实施。