Модернизация MODX

Здравствуйте!
Вопрос довольно общий. Важен ваш опыт

Есть новостной проект, созданный и поддерживаемый на общественных началах (финансирование минимальное), и ради общественного блага. При этом ресурсы хостинга могут последовательно увеличиваться согласно нуждам. Проект крутится на VDS. Apache, ModX Revo, MySQL. Компонентов заточенных под новости/статьи не использовалось. Посещаемость пока до 3000 уников/сутки.

Выдаётся в основном кэшируемый контент, плюс комментарии на основе Tickets (для гостей). Есть объективное «ощущение», что через год количество статей достигнет несколько десятков тысяч. В общем то уже иной раз подтормаживает и подвисает. Встал вопрос о модернизации.

Планируется убрать Apache, поставить Nginx + PHP-FPM. В качестве компонента я подумываю использовать Minishop2 (что бы можно было подвязывать замечательные связанные компоненты), но тут ещё предложили NewsModxBox (https://modxclub.ru/topics/gotovaya-sborka-novostnogo-portala-newsmodxbox-1.0.0-beta-1879.html) — что вы об это думаете?

То есть, смена движка не предвидится, так как из бесплатных ModX Revo наиболее гибкий и универсальный. Скорее возникает мысль поставить рядом второй аналогичный движок, который возьмёт на себя часть ресурсов данного сайта. Вот тут обсуждают мультисайты — несколько сайтов на одном движке, а не приходилось делать наоборот — увязывать два движка в одну админку для одного сайта? (ну а вдруг ))

Третий вопрос. Собрал из рекомендаций в данном сообществе информацию об ускорении фронтенда (модуль в nginx), о сжатии скриптов, и скорости загрузки страниц. Что ещё порекомендуете? думаю многим будет полезно. Хотя конечно основная нагрузка на движок и БД, но, если использовать компоненты уважаемого Василия, то и здесь нагрузка максимально снижается.

Заранее всех благодарю за отзывы!
Александр Н
17 апреля 2016, 17:05
modx.pro
1 422
0

Комментарии: 4

Иван Климчук
18 апреля 2016, 10:21
0
Установкой одного компонента проблему не решить, будь он написан хоть самим богом. Задачу нужно решать с инженерным подходом: искать по порядку слабые места и bottleneck-и и закрывать постепенно проблемы. Несколько десятков тысяч статей и 3k уников в сутки — это детская нагрузка на самом деле. Верно посоветовали заменить apache на nginx и настроить правильно отдачу статики (+кеширование). Для старых статей можете попробовать подключить кешер Varnish (c MODX пока его не дружил, но апи вроде как удобное). Minishop2 ставить ради интеграций смысла не вижу, так как он для других целей и в вашем случае там в плагинах будет делаться бесполезная работа, которая создаст лишнюю нагрузку.
Если касаться тех же тикест, то там все довольно оптимизировано, но можно выпилить отдельные куски или потимизировать. С обновлением пакета конечно потом могут быть сложности, но я еще не встречал хорошо работающего высоконагруженного проекта со стоковым набором плагинов. Обычно что-то допиливается и потимизируется под себя.
    Роман Садоян
    18 апреля 2016, 11:25
    0
    но тут ещё предложили NewsModxBox
    Смысл? Если Вы уже на тикетс, то не нужно никуда переезжать, отключите запись в БД просмотров статей от гостей в настройках MODX (если уже нет).
    мысль поставить рядом второй аналогичный движок
    Я где-то видел, что ставят лайфстрит как фронт для MODX, но зная livestreet и его форк, ALTOCMS, скажу Вам, что лучше уж оставить просто MODX и подключить, хотя бы memcache.
    количество статей достигнет несколько десятков тысяч.
    MODX же всё кэширует, поэтому всё должно отдаваться быстро, если вы не используете сложную выборку по десяткам-сотням TV по тысячам ресурсов, можно поставить также PHP-APC — но мне кажется для Вашего сайта он не подходит.

    Напишите конфигурацию VDS. (ОЗУ, процессор + ядра) и желательно хостинг.

    Можно попытаться подружить с PHP7 — там просто дико увеличена производительность, но могут возникнуть конфликты.

    P.S.: вообще тема интересная, хотелось бы её по больше развить. У самого есть проект с посещаемостью от 3к до 10к в сутки (в пиковые моменты онлайн выше 300 человек), практически 95% посетителей посещают страницу с очень сложной выборкой 44 ресурсов (Тикетов) + 7 ТВ и одновременной обработкой этих данных и фильтрации в некешируемом сниппете. Хоть и выборка данных происходит через pdoFetch процессор очень сильно нагружается, пришлось вывести сайт в облачное потребление, что бы обеспечить бесперебойную работу в ущерб финансам, благо FLOPS это позволяет, по мимо этого была осуществлена миграция с nginx + apache + php на nginx + php5-fpm + memcached.
      Александр Н
      18 апреля 2016, 15:41
      0
      Проект был на выделенном сервере, среди прочих проектов. Переносится на VDS (KVM, 4 ядра и 4 Гб оперативки) от firstvds.ru. В общем то пока хостинг в обоих случаях заметно превышает потребности проекта, поэтому и приходиться размышлять над преобразованием програмной части.
        Роман Садоян
        18 апреля 2016, 21:57
        0
        Я сделал перенос с FastVPS на Flops, сменив apache nginx php на nginx + php5-fpm и это уже решило проблемы с загрузкой сайта. Причем снизил оперативную память с 4гб до 1гб и увеличил квоту 12 ядер с 1 до 2ух. Т.е. в итоге имею 1гб оперативки и 2 ядра.
        Не знаю почему, но памяти стало расходоваться меньше. ( Скидываю всё это на apache)
        Поэтому в принципе для начала можете попробовать перенести на NGINX + настроить кэширование, этого будет достаточно. (я рекоммендую memcache)
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4