Apache mod_proxy

呃,我在想,我无法弄清楚,我很沮丧:

<VirtualHost *:80> servername domain1.com.au ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Proxy *> Order Allow,Deny Allow from all </Proxy> RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] </VirtualHost> <VirtualHost *:443> servername domain1.com.au SSLEngine on SSLCertificateFile /etc/apache2/ssl/owncloud.pem SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key DocumentRoot /var/www/html </VirtualHost> <VirtualHost *:*> Servername domain2.com.au ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://192.168.1.12/ ProxyPassReverse / https://192.168.1.12/ </VirtualHost> 

不知道是否清楚我想要做什么,但是我已经阅读和阅读,我仍然无法弄清楚。

基本上我有一个工作的Apache服务器重写强制HTTPS,如前两个VirtualHost条目所示。 我现在有另一个域名下的另一台服务器上的webmail服务,但是我只有一个公网IP地址。

所以我试图让任何传入的第二个域的请求被代理到另一个服务器来访问networking邮件,无论它的端口80或443。

IMAP和POP3没有问题,我可以直接将端口转发到正确的服务器。

上述configuration的结果是对domain2.com.au(端口80或443)的请求被转发到https://domain1.com.au 。

我正确的方向?

您需要在configuration中将NameVirtualHost设置为Servername才能生效。

 NameVirtualHost *:80 NameVirtualHost *:443 

如果你不设置它,最后一个块将优先并覆盖以前的VirtualHostconfiguration。

详细信息请参阅文档 。