Категория > Новости > Magentная аномалия. Настраиваем ngnix для работы с Magento - «Новости»
Magentная аномалия. Настраиваем ngnix для работы с Magento - «Новости»28-01-2022, 00:00. Автор: Mason |
моя предыдущая статья про «Апач», а реальный кейс: на VDS с 39 Гбайт оперативки nginx кушал всю память, после чего сайт «ложился». Как мне удалось справиться с этой напастью, я сейчас расскажу.Вкратце о сервереИтак, имеем самый обычный VDS с 39 Гбайт оперативки, 12 ядрами и «Убунтой» на борту. PHP 7.2, PHP-FPM, MySQL 5.7. Версии ПО, может, немного и древние, но установлены неспроста: такая конфигурация обусловлена требованиями CMS Magento 2.3.4. Более новая версия PHP повлекла бы за собой обновление версии CMS, а этого по ряду причин делать было нельзя. Как обычно, все прекрасно работало до одного момента: пока не начались традиционные новогодние распродажи и маркетологи не притащили на сайт кучу трафика. Вот тут и начались проблемы. Наиболее характерная из них — процесс Конфигурационные файлыПрежде чем приступить к дальнейшему чтению статьи, нужно понимать, что и где и редактировать. Конфигурация nginx хранится в каталоге Как правило, конфиги сайтов хранятся в каталоге Далее перейдем к параметрам PHP. У него есть несколько конфигураций. Прежде всего введи команду
Чтобы узнать, какой именно файл конфигурации PHP используется, помести в корень сервера PHP-скрипт, вызывающий Включение HTTP 2.0Если не считать статического кеша, то самое крутое, что ты можешь сделать в настройках nginx, — это включить HTTP 2.0. Некоторые админы почему‑то забывают об этом. В моем случае так и было: я уже получил преднастроенный подрядчиком сервер, в котором почему‑то забыли включить версию 2.0 протокола HTTP. Думаю, не нужно говорить о том, как медленно работала Magento. Больше дела, меньше слов: открой конфигурацию сайта в каталоге
server {
listen 443 ssl http2;
ssl on;
...
}
Номер порта и SSL установи по своему усмотрению, но поскольку пример реальный, то SSL уже есть на твоем сайте, так как это стандарт по умолчанию. OPcache: быть или не быть?OPcache используется для кеширования скомпилированного байт‑кода PHP-скриптов в оперативной памяти. С одной стороны, при использовании OPcache повысится производительность и снизится нагрузка на сервер — PHP уже не будет создавать байт‑код при выполнении скрипта, а станет использовать откомпилированную версию из кеша. С другой стороны, в процессе использования сложных CMS вроде Magento могут возникнуть проблемы. При установке расширения этого движка происходит так называемая перекомпиляция Magento. Лучше эту процедуру производить при выключенном кеше, а затем снова его включить. Для этого редактируется конфиг, перезагружается сервис Для включения OPcache нужно открыть конфигурацию PHP, в нашем случае это
opcache.enable = 1
Этим ты активируешь
opcache.memory_consumption = 256
С остальными настройками OPcache можно ознакомиться здесь. На своем сервере я отключил OPcache по двум причинам. Во‑первых, сайт активно допиливается, из‑за чего очень часто приходится добавлять в него новые функции или изменять уже имеющиеся, что при включенном OPcache не совсем удобно. Во‑вторых, пока нет никакого желания устанавливать Varnish, хотя в скором времени это придется сделать. На данный момент используется штатная система кеширования. Запрещаем доступ ботовБоты во время своего обхода сайта расходуют драгоценные ресурсы. При неблагоприятном стечении обстоятельств (например, случайные или намеренные визиты нескольких ботов сразу) сайт может упасть, не выдержав нагрузки. Каждый GET-запрос страницы тянет за собой использование ресурсов сервера: загрузка элементов страницы (картинки, CSS-таблицы и прочее), обращение к базе данных и, возможно, к сторонним ресурсам. Бот — это не пользователь, который откроет одну страницу и изучает ее контент, бот открывает страницу за страницей, что может вызвать негативные последствия. Перейти обратно к новости |