Apache SSL代理引擎

Apache SSL代理引擎

我必须配置一个反向代理来将 HTTPs 请求重定向到另一个也运行 HTTPs 的主机,但我被卡住了

以下是我的 Apache 上的虚拟主机配置,作为反向代理

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mail.mydomain.com

RewriteEngine   on
RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

SSLProxyEngine on

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

   ProxyPass / https://192.168.1.6/webmail/
   ProxyPassReverse / https://192.168.1.6/webmail/

    ErrorLog /var/log/apache2/webmail_log
    CustomLog /var/log/apache2/webmail-access_log combined
</VirtualHost>

在我的浏览器上我使用这个地址http://mail.mydomain.com

但它只将请求重定向到反向代理服务器上的 HTTP,而不是邮件主机上的 HTTP。

谢谢大家

答案1

我还没有设置 https 反向代理,但我马上就要设置了

据我所知,您的代理定义在错误的地方。

您的 RewriteRule 将您从 http 虚拟主机重定向到 https 虚拟主机,因此代理配置必须放到那里。

编辑: 基本上我的意思是:

从端口 80 上的虚拟主机中删除代理

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName mail.mydomain.com

        RewriteEngine   on
        RewriteCond     %{SERVER_PORT} ^80$
        RewriteRule     ^(.*)$ https://%{SERVER_NAME}$1 [L,R]



        ErrorLog /var/log/apache2/webmail_log
        CustomLog /var/log/apache2/webmail-access_log combined
</VirtualHost>

并将其添加到监听端口 443 (https) 的虚拟主机

<VirtualHost *:443>

... 其他 vhost 配置....

        SSLProxyEngine on

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

        ProxyPass / https://192.168.1.6/webmail/
        ProxyPassReverse / https://192.168.1.6/webmail/
</VirtualHost>

我还没有测试过这个确切的设置,但我认为它应该像这样工作......

相关内容