Proxy 带Apache代理的Plone

Proxy 带Apache代理的Plone,proxy,apache2,plone,Proxy,Apache2,Plone,我在OSXServer10.5上通过Apache代理设置了一个plone-zinstance。服务器通过端口80上的单个vhost进行设置,并向Plone zinstance发送代理和Proxypass指令: ProxyPass / http://localhost:8080/VirtualHostBase/http/server:80/Plone/VirtualHostRoot/ ProxyPassReverse / http://localhost:8080/

我在OSXServer10.5上通过Apache代理设置了一个plone-zinstance。服务器通过端口80上的单个vhost进行设置,并向Plone zinstance发送代理和Proxypass指令:

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

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

设置一个静态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以包含您的静态内容。

抱歉,信息不够,但我将提供一些注释,这些注释可能会帮助您找到正确的方向

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

另一张海报已经展示了如何配置ProxyPass,以便有选择地绕过ProxyPass到Plone并直接从Apache提供服务


关于“8888端口上的附加vhost”。不清楚你这是什么意思。额外的服务是什么?如果它是静态html和php内容的来源,那么仅限于localhost意味着您还必须配置一个内部代理才能访问它。您可以通过重写规则来实现这一点,但在这个用例中,这似乎是一种过于复杂的方式。为什么此vhost仅对本地主机可用?因此,为什么要使用单独的vhost。。。您可以使用适当的ProxyPass行(或者如果需要更大的灵活性,可以重写行)在一个vhost中完成所有这些(Plone、静态文件和PHP)。

我建议将您的配置滚动到虚拟主机块中。您可以通过重写特定路径直接从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>

ServerName yoursite.com
别名/static/var/www/some/path/
选项包括以下符号链接
允许超越所有
#Zope重写。
重新启动发动机
重写规则/静态-[L]
重写规则^/(*))http://127.0.0.1:8080/VirtualHostBase/http/%{SERVER_NAME}:80/Plone/VirtualHostRoot/$1[L,P]

我已经把它放到了可以在plone中看到iframe的地方。我正在为8888端口上的附加vhost提供服务,该端口仅对本地主机可用。我可以看到第一个页面,但如果我尝试单击其中的一个链接,它会将我带到一个php页面,它就在那里。我仍然在犹豫是使用重写规则还是proxypass