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