Я решил попробовать плагин Wordfence. Он позиционирует себя как плагин безопасности, обладающий дополнительным преимуществом: повышением производительности. Он утверждает следующее: «для лучшей защиты от DDoS-атак ваш сайт может использовать минимум ресурсов». Это целесообразно. Но может ли быть достигнуто улучшение производительности в 50 раз? Это нужно протестировать.
Wordfence Security – это бесплатный плагин для улучшения безопасности и производительности, который ускорит ваш сайт в 50 раз и сделает его более защищенным.
… Включает в себя Falcon Engine, самый быстрый из существующих механизмов кэширования. Falcon очень быстрый, поскольку он снижает активность диска и базы данных вашего сервера до минимума.
Давайте проверим!
Тестирование
Ниже приведен простой «ab» (Apache Bench) тест производительности для сайта:
$ ab -c 1 -n 100 http://mattiasgeniar.be/
Тест позволяет понять следующее: сколько времени занимает выполнение 100 запросов, следующих один за другим? Первый тест был сделан в чистой сборке WordPress. Второй тест был сделан в сборке с включенным плагином Wordfence, но с отключенными возможностями защиты (без проверки IP, без защиты от брутфорса, только с включенным кэшированием).
Без плагина
У меня не было никаких других включенных плагинов производительности, никаких W3 Super Cache и т.д. Чистая сборка WordPress с несколькими плагинами, и ничего для увеличения скорости. Вот два результата. Два тестовых прогона шли один за другим.
$ ab -c 1 -n 100 http://mattiasgeniar.be/ ... Time taken for tests: 146.746 seconds $ ab -c 1 -n 100 http://mattiasgeniar.be/ ... Time taken for tests: 166.953 seconds
Первый запуск занял 146 секунд, а второй – 166. Среднее время: 156 секунд на сотню запросов или 1.56 секунд на запрос. Ужасно, если честно.
С включенным плагином Wordfence
Тот же самый тест, но уже с включенным плагином производительности. Тест показал следующее:
$ ab -c 1 -n 100 http://mattiasgeniar.be/ ... Time taken for tests: 7.681 seconds $ ab -c 1 -n 100 http://mattiasgeniar.be/ ... Time taken for tests: 7.735 seconds
Первый запуск занял 7.6 секунд, второй – 7.7. Среднее время: 7.6 секунд на сотню запросов. Это где-то 0.076 секунд на запрос.
Заключение
Результаты говорят сами за себя: да, плагин работает. Работает он точно так же, как и WP Super Cache: генерирует статичные HTML-файлы, которые передаются напрямую, без затрагивания PHP или MySQL. Если вы работаете с Nginx, вам нужно будет добавить дополнительные правила перезаписи к вашему конфигу vhost, чтобы разрешить это. Если вы работаете с Apache, вам нужно будет добавить дополнительные правила RewriteRules в .htaccess, чтобы включить эту возможность.
Чем отличается новая производительность от старой? Это очевидно. Во-первых, время отклика на главной странице (и всех других страницах) снизилось кардинально.
И, как дополнительный результат, скорость загрузки значительно выросла, поскольку запросу не нужно долго ждать ответа сервера.
Заключение: 50-кратное увеличение производительности – это не ложь: плагин достигает этого, как и Varnish, путем генерации HTML в памяти/на диске и передачи статичных файлов в последующих запросах. Эффективная штука.
Если установка делается из каталога WordPress, нужно ли вносить упомянутые в тексте изменения вручную или же плагин это сделает автоматически?
Должен сделать автоматически. Возможно, только понадобится опции включить нужные в плане оптимизации.
Спасибо за ценные сведения о Wordfence.
Я так понимаю что Wordfence все таки это в первую очередь плагин защиты.
И надо ли тогда ставить Total Cache?
Одно дело, не очень принципиально когда ведешь блог. Но я скоро хочу соцсеть на buddypress запускать..
Для себя уже определил вроде бы связку: для кеша с CDN это W3 Total Cache, для защиты Wordfence. А здесь оказывается что Wordfence имеет функцию кеширования.
И как быть?))
Можно либо ее использовать, либо нет. Она практически такая же, как в Wp Super Cache. Лучше обходиться Wordfence, чтобы не ставить кучу плагинов дополнительных.
Но никто из админов его тут не тестировал? И если 100 пользователей залогинены на сайте — тест бессмысленный?
За себя скажу, что не тестировал.