Настройка VPS сервера с ОП 512 Мб для нормальной работы Вордпресс

VPS сервер с оперативной памятью 512 Мб и 10 Гб SSD диска — этого вполне должно хватать для пары небольших сайтов. Правда Vesta CP и WordPress с этим не совсем согласны. Они больше ориентируются на сервера с оперативкой от 1 Гб. Тогда есть два пути: брать сервак подороже, или настроить ограничения на потребление ресурсов, чтоб сервер не падал и сервер базы данных MARIADB не отключался постоянно. Я пошел по второму пути.

Всем, кому жалко выкидывать деньги на аренду дополнительных ресурсов посвящается.

  1. Первое что я сделал — это снизил нагрузку на сервер при помощи кеширования и оптимизации страниц. В этом мне помогли плагины WP Super Cache (кеширование содержимого страниц) и Autoptimize (оптимизация данных HTML и CSS и их кеширование). Также я использовал плагин для сокращения HTML кода на страницах Fast Velocity Minify, но только аккуратно и изредка (после сокращения деактивирую, чктоб не кушал лишнее)

2. Потом сжал картинки при помощи плагина EWWW Image Optimizer. Я его тоже изредка включаю, а после работы деактивирую.

Эти шаги конечно ускорили сайт, но база данных все равно при нагрузке отваливалась.

3. Следующим шагом была настройка работы сервера MARIADB в VestaCP, а конкретнее работа с Mysql. Для того чтобы определить оптимальные настройки, я использовал скрипт Mysqltuner в Putty детальнее.

Следуя его рекомендациям у меня получились следующие настройки для сервера MARIADB /etc/my.cnf :

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0

skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K

#innodb_use_native_aio = 0
innodb_file_per_table

max_connections=30
max_user_connections=25
wait_timeout=10
interactive_timeout=50
long_query_time=5

query_cache_size=0
query_cache_type=0
query_cache_limit=3M
thread_cache_size=4
performance_schema=OFF disable PFS
key_buffer_size=3M
tmp_table_size=20M
max_heap_table_size=30M

#slow_query_log=1
#slow_query_log_file=/var/log/mysql-slow-queries.log

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

4. И последнее, что я сделал это ограничил ресурсы в настройках httpd сервера, который заведует прожорливым AJAX. В результате /etc/httpd/conf/httpd.conf у меня такой:

ServerRoot «/etc/httpd»
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin [email protected]

<Directory />
AllowOverride none
</Directory>

DocumentRoot «/var/www/html»
<Directory «/var/www»>
AllowOverride None
Require all granted
</Directory>

<Directory «/var/www/html»>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

DirectoryIndex index.php index.html

<Files «.ht*»>
Require all denied
</Files>

ErrorLog «logs/error_log»
LogLevel warn

LogFormat «%h %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» combined
LogFormat «%h %l %u %t \»%r\» %>s %b» common
LogFormat «%b» bytes
CustomLog «logs/access_log» combined

TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
#AddHandler cgi-script .cgi

AddDefaultCharset UTF-8

<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>

EnableSendfile on

<IfModule remoteip_module>
RemoteIPHeader X-Real-IP
LogFormat «%a %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» combined
LogFormat «%a %l %u %t \»%r\» %>s %b» common
</IfModule>

<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
MaxClients 10
MaxRequestsPerChild 3000
</IfModule>

<IfModule mpm_worker_module>
StartServers 1
MinSpareThreads 5
MaxSpareThreads 15
ThreadLimit 25
ThreadsPerChild 5
MaxClients 25
MaxRequestsPerChild 200
</IfModule>

IncludeOptional conf.d/*.conf

 

Красным я выдели то, что было добавлено в файл конфигурации.

После этого мой сервак может выдержать проход Гуглботом и ботом Screaming Frog, а после многократного обновления страницы (F5) сам встает. 😉  

 

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(1 голос, в среднем: 5 из 5)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *