Apache ProxyPassReverse和https

我想将来自foo.com的80和443上的所有stream量映射到内部服务器:192.168.1.101。 我有一个VirtualHost(在Ubuntu上的Apache 2.2)设置如下(注意,我不得不打破下面的超链接,因为我是一个“新用户”):

<VirtualHost *:80> ServerName foo.com ServerAlias *.foo.com ProxyRequests Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://192.168.1.101/ ProxyPassReverse / http://192.168.1.101/ </VirtualHost> 

这对于httpstream量很有效。 但是,我似乎无法为https做同样的事情。 我努力了:

我在这里和其他地方做了一些search,我能find的最接近的问题就是这个 ,但是没有完全回答。

另外,出于好奇,我试图将所有端口映射到https(通过从http到https更改两个ProxyPass行(并从VH中删除:80),这也不起作用。 ?

有什么想法吗? 提前致谢。

这曾经为我工作

 <VirtualHost *:443> ServerName domaine.com SSLProxyEngine on <Location /> ProxyPass https://www.something.com/ ProxyPassReverse https://www.something.com/ </Location> </VirtualHost> 

以下为我工作:

 <VirtualHost ABCD:443> ... ProxyPass / https://192.168.1.101/ ProxyPass / https://192.168.1.101/ </VirtualHost> 

(显然, ABCD是你的公有IP地址)

我个人会完全跳过Apache,并使用IPTABLES将80和443上的所有stream量转发到所需的IP,可以想象这会带来更高的性能。

(假设您可以访问机器来编辑防火墙规则)。

 $iptables -A PREROUTING -t nat -i $EXTIF -p tcp --dport 80 -j DNAT --to 192.168.1.101:80 $iptables -A FORWARD -p tcp -m state --state NEW -d 192.168.1.101 --dport 80 -j ACCEPT 

从我的防火墙简单地发挥,我只是做你正在做的事情。

如果你想所有的请求被redirect到安全的networking,即通过https添加以下内容:

 <VirtualHost *:443> ServerName ngmlx441 SSLEngine on KeepAliveEnabled ON SSLCipherSuite HIGH:MEDIUM SSLProtocol all SSLProxyEngine on SecureProxy ON SSLProxyEngine on SSLCertificateFile /etc/httpd/conf.d/servername.crt SSLCertificateKeyFile /etc/httpd/conf.d/servername.key SSLCACertificateFile /etc/httpd/conf.d/orgination.crt </VirtualHost>