Apache SSL代理引擎

bil*_*duc 4 mod-proxy

我必须配置反向代理以将 HTTPs 请求重定向到另一个也运行 HTTPs 的主机,,,但是我陷入困境

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

<VirtualHost *:80>
        ServerAdmin admin@mydomain.com
        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>
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢大家

Mar*_*l G 5

我还没有设置 https 反向代理,但我现在就要设置

据我所知,您的代理定义位于错误的位置。

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

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

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

<VirtualHost *:80>
        ServerAdmin admin@mydomain.com
        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>
Run Code Online (Sandbox Code Playgroud)

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

<VirtualHost *:443>
Run Code Online (Sandbox Code Playgroud)

...其他虚拟主机配置....

        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>
Run Code Online (Sandbox Code Playgroud)

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