1

我在 OS X Server 10.5 上通过 Apache 代理设置了一个 plone zinstance。服务器在端口 80 上设置了一个 vhost,并带有 Proxy 和 Proxypass 指令到 Plone zinstance:

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

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

4

3 回答 3

2

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

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

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

于 2010-01-10T18:50:59.350 回答
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>
于 2010-03-04T07:39:02.523 回答
0

抱歉,没有足够的信息,但我会提供一些评论,可能会帮助您指出正确的方向。

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

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

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

于 2010-01-31T10:31:20.870 回答