[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Status, progress and remaining problems for our upcoming Plone site.



Hi.

There's one remaining issue before the Plone site can be configured
as wanted, but basically, it can be deployed anytime we get the new
server. We won't survive a slashdot or high traffic until we solve this,
though.

To meet Zope/Plone's rather high hardware requirements, and after
experimenting with various configurations, I've ended on the following
suggestion:

Apache and Apache-ssl [1] run as frontend servers. Squid run in the
middle of the two apaches and Zope/Plone.  Apache is for 
anonymous users (hence "guests") and Apache-ssl is used for
authenticated users (hence "members").

Using mod_rewrite, requests by guests get proxyed to squid. Squid caches
the pages generated by Plone for X minutes. (My suggestion is ten
minutes). Images, stylesheets, javascript files and other static content
are cached for an hour or so.

Members use https and thus apache-ssl. Apache-ssl only forwards (images,
etc.) static content to squid -- everything else goes directly to Zope 
without any caching. Members want to see their changes and new documents
immediately.

This setup allows us to use anything requiring apache without any
problems. The apache, apache-ssl and squid versions used are all in
stable. Without any optimizations and on my quite busy workstation,
pages were delivered 120 times faster. I guess that's adequate.

There's a critical issue left, though. I have to figure out a way to
have different caches for the different translations of our multi
lingual content. (This is only true for guests). I'll do some testing
using the "Vary"-HTTP-header, but I think it'll be easier and better to
do something like the following, if we can make some modifications to a
module in Plone, which I believe is trivial to a savvy zope hacker:

 Use language codes in the URL, like no.skolelinux.org, dk.skolelinux.org
 and de.skolelinux.org. Using mod_rewrite, what zope recieves is
 plonesite/somefolder/somedocument/{no,dk,de,etc.}.

This works, but that requires "somedocument" to actually have those
translations. That's not acceptable - it should return the content of
the fallback language -- English -- if a translation doesn't exist. I'm
working on this issue, but I need help. If you know python and plone or
zope and would like to help out, please send me a mail.

Feedback and comments?

--
Alex Brasetvik

-
[1] I've experimented with apache-ssl as a separate daemon, but I guess
mod_ssl can be used as well.



Reply to: