Чтобы VDS показывал максимальную производительность, нужно его правильно настроить. Это не поможет получить больше ресурсов, чем хостер предоставляет по условиям тарифа, но позволит грамотно использовать имеющиеся мощности и заметно улучшить показатели VDS.
Что нужно для разгона сервера VDS
Одно из преимуществ виртуализации OpenVZ — минимальные потери производительности. Однако это не значит, что сервер не нужно оптимизировать.
Есть универсальный список рекомендаций по увеличению производительности VDS.
-
Отключите неиспользуемые службы. По умолчанию на сервере после стандартной установки LAMP работают службы, которые не нужны сайту. Их отключение сэкономит ресурсы сервера. Самая большая проблема — понять, какие службы не нужны.
-
Установите nginx — веб-сервер снизит нагрузку, взяв на себя обработку статических файлов. За обработку динамических запросов и дальше будет отвечать Apache. Хотя теоретически от него можно отказаться совсем.
-
Установите акселератор PHP — он нужен для кэширования заранее скомпилированного байт-кода. Это позволяет ускорить выполнение PHP-скриптов. Примеры акселераторов — APC, eaccelerator, Xcache.
-
Установите memcache — он позволяет кэшировать данные в оперативной памяти, а не на диске. Благодаря этому данные пишутся и отдаются практически мгновенно. Обычно настраивается кэширование частых запросов в базу данных, промежуточных итогов выполнения скриптов PHP. Иногда кэшируются заранее созданные страницы.
-
Переключите PHP в режим FastCGI или используйте PHP-FPM — это снизит нагрузку на сервер и увеличит стабильность его работы.
-
Установите модуль PageSpeed — он оптимизирует данные, которые отдают посетители сайта. Однако его неправильная настройка может привести к проблемам в работе сервера.
Еще один вариант значительно улучшить производительность VDS — полностью отказаться от веб-сервера Apache. Он медленный и очень тяжелый: потребляет кучу ресурсов. Вместо него можно использовать связку nginx+PHP-FPM. Это будет намного быстрее и экономичнее. Но есть проблема — для правильной настройки такой конфигурации нужен большой опыт. Оптимизация работы сервера — в принципе сложная задача. Поэтому если у вас нет такого опыта, то лучше начать с минимальных изменений в стандартной конфигурации.
В качестве примера настроим виртуальный сервер c Ubuntu на Timeweb. В панели управления VDS есть удобная консоль. Для авторизации используются логин и пароль, которые хостер присылает в письме после создании сервера.
Ниже вы найдете несколько рекомендаций, которые можно выполнить для увеличения производительности VDS без риска для его работоспособности.
Безболезненный перенос сайта на VDS Timeweb и много бонусов
Переезжай на VDS Timeweb! Бесплатно перенесем сайт, зачислим на баланс остаток средств у прежнего хостера и утроим первый платеж. И еще пачка бонусов по кнопке ниже.
ЗаказатьУсловия использования промокода
Настройка nginx
Apache — мощный, но тяжеловесный сервер, который потребляет большое количество ресурсов. Если совсем отказаться от него нельзя, то выходом может стать использование nginx в качестве фронтенда. Он будет кэшировать и отдавать пользователям статическое содержимое страниц, а Apache будет обрабатывать запросы, связанные с динамикой.
Установите nginx:
sudo apt-get install nginx
Удалите стандартные настройки:
sudo rm /etc/nginx/sites-enabled/default
Создайте файл конфигурации:
sudo nano /etc/nginx/sites-available/site.ru // Вместо site.ru укажите свой домен
Вставьте в файл следующие параметры:
server { listen 80; root /var/www/site.ru; index index.php index.html index.htm; server_name site.ru; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ~ /\.ht { deny all; } location ~* \.(jpg|jpeg|gif|png|ico|css|swf|flv|doc|docx)$ { root /var/www/site.ru; } }
Примените изменения:
sudo ln -s /etc/nginx/sites-available/site.ru /etc/nginx/sites-enabled/site.ru sudo service nginx restart
В конфигурации nginx теперь задано кэширование статического содержимого — документов, изображений, видео.
Затем нужно настроить Apache. Откройте файл конфигурации портов:
sudo nano /etc/apache2/ports.conf
Исправьте следующие строки:
NameVirtualHost 127.0.0.1:8080 Listen 127.0.0.1:8080
Такие же правки внесите в файл виртуального хоста:
<VirtualHost 127.0.0.1:8080>
Для применения конфигурации перезагрузите Apache:
sudo service apache2 restart
Nginx теперь играет роль прокси-кэш сервера. Это позволяет значительно увеличить производительность сервера.
Настройка PHP
На производительность динамических сайтов влияют и настройки PHP. Если интерпретатором является модуль Apache, то параметры находятся в файле /etc/php5/apache2/php.ini. Если на сервере стоит PHP-fpm в связке с nginx, то нужно править файл /etc/php5/fpm/php.ini.
Многие настройки зависят от используемой CMS. Однако есть универсальные директивы, изменение значения которых помогает снизить нагрузку на VDS и увеличить производительность.
Например, always_populate_raw_post_data = On. Эту директиву следует включать только в том случае, если необходимо следить за нагрузкой от входящего POST-запроса. Ее отключение позволяет немного разгрузить оперативную память.
always_populate_raw_post_data = Off
Еще одна полезная настройка — активная буферизация. Ее включение позволяет отдавать данные крупными фрагментами.
output_buffering = On
Этот блок директив рекомендуется полностью закомментировать. Он нужен, если используются суперглобальные переменные. Для большинства движков это избыточная настройка.
; variables_order ; Default Value: "EGPCS" ; Development Value: "GPCS" ; Production Value: "GPCS"
Еще одна важная мелочь — часовой пояс. Если не установить его вручную, PHP будет постоянно отправлять запросы для его определения. Например:
date.timezone = Europe/Moscow
В PHP версии 5.5 и выше по умолчанию включен компонент Zend Opcache. Его настройки нужно выбирать в зависимости от специфики сервера и сайта. Но для начала можно воспользоваться рекомендуемой конфигурацией. Она ускорит обработку скриптов, что положительно скажется на производительности сервера.
Установите размер потребляемой памяти для прекомпилируемого кода:
opcache.memory_consumption=128 // Значение в МБ
Задайте объем памяти для пула строк:
opcache.interned_strings_buffer=8 // Значение в МБ
Задайте число скриптов в хэш-таблице:
opcache.max_accelerated_files=4000 // Число от 200 до 1000000
Установите периодичность проверки данных:
opcache.revalidate_freq=60 // Значение в секундах
Отключите поддержку PHP CLI. Она используется для отладки:
opcache.enable_cli=0
После изменения настроек необходимо перезагрузить Apache:
sudo service apache2 restart
В случае с nginx перезагрузите службу интерпретатора:
sudo service php5-fpm restart
Это рекомендуемые настройки, которые приведут к росту производительности на большинстве серверов. Они могут меняться в зависимости от специфики сайта и конфигурации VDS. Определить оптимальные параметры можно только на практике, пробуя разные варианты.
Комментарии