У меня есть небольшое количество сайтов Plone, работающих на виртуальных хостах сервера Apache 2.4. У меня есть сильное чувство, что выступление могло быть намного лучше.
Давайте предположим довольно простую настройку для сайта Plone:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
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
, который запускает сайт Plone в виртуальной папке /example
(который находится в базе данных объектов).
Теперь этот сервер предоставляет некоторые статические ресурсы, например изображения и таблицы стилей (которые находятся в файловой системе), а также некоторые псевдостатические ресурсы, такие как компиляции скриптов или таблиц стилей с именем с меткой времени (которые не имеют расположения в файловой системе).
У некоторых статических ресурсов есть пути, указывающие, где находится физический ресурс (например, /++resource++browsername/name-of-script.js
, где browsername
подсказка); другие берутся из так называемых скинов (то есть из первого скина, который их содержит), и нет простого способа определить местоположение файловой системы по имени скина (которое в любом случае не будет известно из ответа).
Такие запросы не должны обрабатываться базовым сервером Zope с использованием одного из его потоков. Каковы рекомендуемые стратегии, позволяющие избегать того, что Apache может делать сам (более эффективно и без блокировки потоков Zope), и кэшировать содержимое?
Итак, полное решение может включать
и с настройкой ZEO,
Какие-нибудь руководства по настройке где-нибудь?
Основная цель Plone - предоставить многопользовательскую систему управления контентом, которая позволяет совместно редактировать веб-сайты. Цена - динамическое создание представления веб-контента и некоторая потеря скорости. Если вам нужны небольшие быстрые веб-сайты, которые вы в основном редактируете самостоятельно, вам может быть лучше использовать программу-генератор, которая создает для вас статические веб-сайты. Многие из них доступны как коммерчески, так и с открытым исходным кодом. Сказав это, в принципе вы можете комбинировать как динамически, так и статически сгенерированный контент из всех видов источников за apache, например http://httpd.apache.org/docs/2.4/urlmapping.html, в любом листовом узле древовидной структуры сайта.