在 apache 中通过 ssl 转发代理请求

在 apache 中通过 ssl 转发代理请求

我有一个 apache 网络服务器,我想将所有请求转发到代理到另一个域。到目前为止,我已经对 http 请求完成了此操作,但它对 https 不起作用。我的 httpd-ssl.conf 文件:

Listen 443 
AddType application/x-x509-ca-cert .crt 
AddType application/x-pkcs7-crl .crl 
SSLPassPhraseDialog builtin 
SSLSessionCache shmcb:/var/log/httpd/ssl_scache(512000) 
SSLSessionCacheTimeout 300 
SSLProxyEngine On 
SSLProxyVerify require 
SSLProtocol All -SSlv2 -SSLv3 
ProxyRequests Off 
ProxyPreserveHost On 

<VirtualHost _default_:443> 
 ServerName domain.com 
 ServerAdmin [email protected] 
 DocumentRoot /path 

 ProxyRequests Off 
 ProxyPreserveHost On 

 SSLEngine On 
 SSLProxyEngine On 
 SSLHonorCipherOrder On 
 SSLCipherSuite -- 
 SSLCertificateFile /path/server.crt 
 SSLCertificateKeyFile /path/server.key 
 SSLCACertificateFile /path/server.ca 

#<Proxy *> 
# Order allow,deny 
# Allow from all 
#</Proxy> 

 <Location / > 
  ProxyPass "http://my.ip/" 
  ProxyPassReverse "http://my.ip/" 
 </Location> 
</VirtualHost>

当我去http://example.com/v1,它将请求转发到http://my.ip/v1,但是当我使用 https 访问相同的 url 时(https://example.com/v1)它只是在根目录中打开我的 index.html 并且不转发请求。

答案1

并将其添加到您的虚拟主机配置:

SSLProxyEngine on

您还可以在普通的 VirtualHost 部分使用 ProxyPass 命令。

部分

<Location />
  ...
</Location>

是没有必要的。

相关内容