使用Apache代理的Plone

时间:2010-01-07 12:48:12

标签: proxy apache2 plone

我在OS X Server 10.5上通过Apache Proxy设置了一个plone zinstance。服务器在端口80上设置了一个vhost,使用Proxy&对Plone zinstance的Proxypass指令:

        ProxyPass / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/
        ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/

但是,我想通过plone网站在iframe中显示一些静态HTML和PHP内容。我想我需要在另一个端口上设置另一个vhost,然后只需指定端口#inline?

3 个答案:

答案 0 :(得分:2)

设置一个静态URL,该URL不会被代理,而是直接从Apache提供,如下所示:

ProxyPass /static !
ProxyPass / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/
ProxyPassReverse / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/

然后配置/ static以包含静态内容。

答案 1 :(得分:1)

我建议您将配置滚动到虚拟主机块中。您可以通过重写特定路径直接从apache提供静态内容。这是一个例子

<VirtualHost *:80>
  ServerName yoursite.com
  Alias /static /var/www/some/path/

  <Directory "/var/www/some/path">
    Options Includes FollowSymLinks
    AllowOverride All
  </Directory>

  # Zope rewrite.
  RewriteEngine On
  RewriteRule /static - [L]
  RewriteRule ^/(.*) http://127.0.0.1:8080/VirtualHostBase/http/%{SERVER_NAME}:80/Plone/VirtualHostRoot/$1 [L,P]
</VirtualHost>

答案 2 :(得分:0)

抱歉,信息不足,但我会提供一些可能有助于指明正确方向的评论。

首先,ProxyPassReverse是不必要的,因为Plone已经负责修复任何自引用URL。毕竟,这就是疯狂网址的重点。

另一张海报已经展示了如何配置ProxyPass以选择性地将代理绕过Plone并直接从Apache提供服务。

关于“端口8888上的附加虚拟主机”。目前尚不清楚你的意思。什么是额外的虚拟服务?如果它是你的静态html和php内容应该来自那么限制到localhost只意味着你将不得不配置一个内部代理来达到它。你可以用Rewrite规则做到这一点,但这似乎是一个过于复杂的方式进入这个用例。为什么此虚拟主机仅可用于localhost?就此而言,为什么使用单独的vhost ...你可以在一个vhost中使用适当的ProxyPass行(或者如果你需要更多的灵活性重写行)来完成所有这些(Plone,静态文件和PHP)。