2010-01-07 56 views
1

我在OS X Server 10.5上通过Apache Proxy设置了plone zinstance。服务器设置了一个虚拟主机上的80端口,与代理& PROXYPASS指令到Plone的zinstance:Plone与Apache代理

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

不过,我有一些静态的HTML和PHP的内容,我想通过一个IFRAME显示plone网站。我想我需要在另一个端口上设置另一个虚拟主机,然后只需指定端口#内联?

+0

我已经把它带到了我可以在plone中看到iframe的地方。我正在为端口8888上的其他虚拟主机提供本地主机。我可以看到第一页,但如果我尝试点击其中的一个链接应该带我到一个PHP页面,它只是坐在那里。 – churnd 2010-01-07 12:49:54

回答

2

设置将不会被代理但从阿帕奇直接投放,这样的静态URL:

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

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

0

对不起,没有足够的信息,但我会提供一些评论,可能有助于指导你正确的方向。

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

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

关于“端口8888上的附加虚拟主机”。目前尚不清楚你的意思。什么是额外的虚拟主机服务?如果这是你的静态HTML和PHP内容应该来自哪里,那么限制到本地主机只意味着你将不得不配置一个内部代理才能达到它。你可以用重写规则来做到这一点,但这似乎是一个过分复杂的方式去使用这个用例。为什么这个虚拟主机只能用于本地主机?对于这个问题,为什么要使用单独的虚拟主机...你可以在适当的ProxyPass行(或重写行,如果你需要更多的灵活性)在一个虚拟主机中完成这一切(Plone,静态文件和PHP)。

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> 
+0

我仍然在关注是否使用重写规则或代理通行证 – churnd 2010-03-15 21:28:45