2010-01-07 85 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