我有一小部分在Apache 2.4服务器的虚拟主机上运行的Plone站点。 我有强烈的感觉,performance可能会好得多。
我们假设一个Plone站点的基本设置:
<VirtualHost *:80> ServerAdmin [email protected] ServerName www.example.com CustomLog /var/log/httpd/vhost-example.log combined ErrorLog /var/log/httpd/vhost-example.error.log RewriteEngine on DocumentRoot /opt/zope/instances/example/htdocs ErrorDocument 502 /error-500.html ErrorDocument 503 /error-500.html RewriteEngine On RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/%{HTTP_HOST}:80/example/VirtualHostRoot/$1 [L,P] </VirtualHost>
在这个设置中,几乎所有事情都由Zope服务器完成,监听端口8080 ,在虚拟文件夹/example (位于对象数据库)中运行Plone站点。
现在,这个服务器提供了一些静态资源,例如图片和样式表(它们存在于文件系统中)以及一些伪静态资源,比如带有时间戳名称(没有文件系统位置)的脚本或样式表的编译。
一些静态资源的path给出了物理资源所在browsername的提示(例如/++resource++browsername/name-of-script.js ,其中browsername是提示)。 其他的是从所谓的皮肤(即从包含它们的第一皮肤)中取出的,没有简单的方法从皮肤名称(从反应中不会知道这个信息)知道文件系统的位置。
这样的请求不需要由底层的Zope服务器使用其中一个线程来处理。 什么是推荐的策略,以避免Zope的Apache可以做自己(更有效率,而不阻止Zope的线程),并caching内容?
所以,一个完整的解决scheme可能包括
而且,通过ZEO设置,
任何configuration指南都可以
Plone的主要目的是提供一个多用户内容pipe理系统,允许协作编辑网站。 价格是dynamic创build的networking内容呈现和一些速度的损失。 如果你想要小型,快速的网站,你大多是编辑自己,那么你可能会更好的发电机软件,为您创build静态网站。 其中不less商业和开源都可用。 说到这一点,原则上你可以在apache后面的各种来源(如http://httpd.apache.org/docs/2.4/urlmapping.html)中dynamic和静态生成内容,在树结构的任何叶节点的网站。