Zimbra 7.2 反向代理到任意内部网站?

Zimbra 7.2 反向代理到任意内部网站?

我在 webmail.domain.com 上安装了 ZCS 7.2 opensource,并在 mailman.domain.com/mailman 上安装了 mailman。

我想设置一个代理,这样当有人访问 webmail.domain.com/mailman 时,代理就会提取 mailman.domain.com/mailman 的内容。

使用 apache 和 mod_proxy 我可以做类似 ProxyPass /mailman 的事情https://mailman.domain.com/mailman ProxyPassReverse /mailmanhttps://mailman.domain.com/mailman

鉴于 Zimbra 中的定制化程度,是否有可能(并且建议)对 Zimbra 的 Web 服务器进行同样的操作?因此基本上是一个转发到任意内部网站的反向代理。

答案1

点击此链接: http://www.maxxer.it/2010/linux/set-apache2-to-proxy-zimbra/

我已经使用 Apache2 成功代理 Zimbra 很长时间了。

这些命令适用于 Debian/Ubuntu 服务器。

首先,启用apache2的模块:

a2enmod proxy
a2enmod proxy_html
a2enmod proxy_http

通过更改 /etc/apache2/mods_available/proxy.conf 确保允许使用 mod_proxy

Allow from all

在本例中,我想代理 SSL,因此在开始之前,您需要将 Zimbra HTTPS 从端口 443 移开(我移到了 444)。将您的 Zimbra 证书文件复制到 apache 可访问的目录中。我选择 /etc/apache2/ssl。

要允许从 / 自动重定向到 /zimbra,就像在常规 Zimbra 安装中一样,请将以下行添加到主节中:

RedirectMatch ^/$ /zimbra/
Then, edit you apache2 config file and add:

SSLProxyEngine on
SSLCertificateFile /etc/apache2/ssl/host.crt
SSLCertificateKeyFile /etc/apache2/ssl/host.key
SSLCACertificateFile /etc/apache2/ssl/ca_bundle.crt
ProxyRequests On
ProxyPreserveHost On
ProxyVia full
<Location "/service">
  ProxyPass https://your_zimbra_ip:444/service
  ProxyPassReverse https://your_zimbra_ip:444/service
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /service /service
</Location>

<Location "/zimbra">
  ProxyPass https://your_zimbra_ip:444/zimbra
  ProxyPassReverse https://your_zimbra_ip:444/zimbra
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /zimbra /zimbra
</Location>

<Location "/home">
  ProxyPass https://your_zimbra_ip:444/home
  ProxyPassReverse https://your_zimbra_ip:444/home
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /home /home
</Location>

# CalDAV
<Location "/principals">
  ProxyPass https://your_zimbra_ip:444/principals
  ProxyPassReverse https://your_zimbra_ip:444/principals
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /principals /principals
</Location>
# DAV
<Location "/dav">
  ProxyPass https://your_zimbra_ip:444/dav
  ProxyPassReverse https://your_zimbra_ip:444/dav
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /dav /dav
</Location>
#Printing and HTML interface
<Location "/h">
  ProxyPass https://your_zimbra_ip:444/h
  ProxyPassReverse https://your_zimbra_ip:444/h
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /h /h
</Location>

# img for mobile interface
<Location "/img">
  ProxyPass https://your_zimbra_ip:444/img
  ProxyPassReverse https://your_zimbra_ip:444/img
  ProxyPassReverse /
  ProxyHTMLExtended      On
  ProxyHTMLURLMap /img /img
</Location>

重启 apache2,就大功告成了!PS:如果你想要代理 https:

a2enmod ssl

将以下内容添加到您的 /etc/apache2/sites-available/default-ssl

SSLProxyEngine on
ProxyRequests On
ProxyPreserveHost On
ProxyVia full

相关内容