在我们的用例中,我们尝试用apache代理隐藏第三方代理的代理authentication,因为云服务器提供商与ip白名单不兼容。
这意味着从我们的服务器我们尝试使用代理。 而代理需要ip白名单validation。
因此,试图设置一个代理转发到外部代理,其中我们的代理有一个静态IP。
首先我们做了,在我们的AWS盒子上安装一个只有这些configuration的apache服务器
ProxyRequests On ProxyPreserveHost On <VirtualHost *:8001> ProxyPass / http://yyy.externalprovider.io:8230/ Keepalive=On ProxyPassReverse / http://yyy.externalprovider.io:8230/ </VirtualHost>
这对http和https都完全正常。 但请求仍然来自我们的服务器IP。
在此之后,我可以实现使用正常的http运行的东西,但https总是提供一个502网关错误。 具有以下configuration
ProxyRequests Off SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off SSLProxyCheckPeerExpire Off ProxyPreserveHost On <VirtualHost *:8001> ProxyPass / http://yyy.externalprovider.io:8230/ Keepalive=On ProxyPassReverse / http://yyy.externalprovider.io.io:8230/ </VirtualHost>
在我们的apache2.conf中,我已经configuration了ProxyTimeout设置为300,因为这是提到最多的解决scheme。
有没有人明白为什么这不起作用?
删除所有SSLProxy *语句,并在ProxyProquest On中添加RemoteProxy,对其进行修复。