Лучшие практики для увеличения функционирования сайтов Plone позади Apache

У меня есть небольшое количество сайтов 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, с помощью одного из его потоков. Что рекомендуемые стратегии состоят в том, чтобы держаться подальше от Zope, какой Apache мог сделать себя (более эффективно, и не блокируя потоки Zope), и к содержимому кэша?

Так, полное решение могло бы включать

  • отображение отличных путей статических ресурсов к известному местоположению файловой системы, если это возможно,
  • попытка нескольких местоположений для статических ресурсов, которые взяты от кожи
  • кэширование сгенерированных ресурсов (например, страницы HTML или компиляции CSS или JavaScript)

и, с установкой ZEO,

  • выравнивание нагрузки (распределение запросов многим клиентам ZEO, которые в свою очередь говорят с сервером ZEO),

Какие-либо руководства по конфигурированию где-нибудь?

1
задан 3 June 2015 в 17:04
1 ответ

Основная цель Plone - предоставить многопользовательскую систему управления контентом, которая позволяет совместно редактировать веб-сайты. Цена - динамическое создание представления веб-контента и некоторая потеря скорости. Если вам нужны небольшие быстрые веб-сайты, которые вы в основном редактируете самостоятельно, вам может быть лучше с программным обеспечением-генератором, которое создает для вас статические веб-сайты. Многие из них доступны как коммерчески, так и с открытым исходным кодом. Сказав это, в принципе, вы можете комбинировать как динамически, так и статически сгенерированный контент из всех видов источников за apache, например http://httpd.apache.org/docs/2.4/urlmapping.html на любом листовом узле древовидной структуры сайта.

1
ответ дан 4 December 2019 в 00:06

Теги

Похожие вопросы