Перейти к основному содержимому
Вернуться в категорию

Лучшая конфигурация сервера для WordPress

Оптимальная конфигурация сервера для WordPress: стек LEMP, PHP-FPM, кэш Nginx FastCGI, Redis, настройка MariaDB, OPcache и настройка CDN. Рекомендуемые характеристики для разных уровней трафика.

Время чтения: 15 мин Веб-хостинг / Приложения
wordpressnginxphp-fpmmariadbredisхостингвеб-сервер

Содержание

Лучшая конфигурация сервера для WordPress

WordPress — самая популярная система управления контентом в мире. Однако при работе с конфигурациями по умолчанию могут возникать проблемы с производительностью. Это руководство шаг за шагом объясняет оптимальную конфигурацию сервера для быстрой и надёжной работы вашего сайта WordPress.

Рекомендуемые характеристики сервера по уровню трафика

Уровень трафикаЕжемесячные посетителиCPURAMХранилищеРекомендуемый план
Малый< 10 0002 vCPU2 ГБ20 ГБ NVMeVPS Starter
Средний10 000 - 100 0004 vCPU4-8 ГБ50 ГБ NVMeVDS Starter
Большой100 000 - 500 0008 vCPU16 ГБ100 ГБ NVMeVDS Pro
Корпоративный500 000+16+ vCPU32+ ГБ200+ ГБ NVMeDedicated

Установка стека LEMP

Стек LEMP (Linux + Nginx + MariaDB + PHP-FPM) обеспечивает наилучшую производительность для WordPress. Он использует меньше памяти, чем Apache, и поддерживает больше одновременных соединений.

hljs bash
# Обновить систему
sudo apt update && sudo apt upgrade -y

# Установить Nginx
sudo apt install nginx -y

# Установить MariaDB
sudo apt install mariadb-server mariadb-client -y

# Установить PHP и необходимые расширения
sudo apt install php8.2-fpm php8.2-mysql php8.2-xml php8.2-gd \
  php8.2-curl php8.2-mbstring php8.2-zip php8.2-redis -y

Конфигурация пула PHP-FPM

hljs ini
[wordpress]
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

php_admin_value[memory_limit] = 256M
php_admin_value[upload_max_filesize] = 64M
php_admin_value[max_execution_time] = 300

Конфигурация Nginx и кэш FastCGI

hljs nginx
fastcgi_cache_path /var/cache/nginx/wordpress
    levels=1:2
    keys_zone=WORDPRESS:100m
    inactive=60m
    max_size=1g;

server {
    listen 443 ssl http2;
    server_name example.com;

    set $skip_cache 0;
    if ($request_method = POST) { set $skip_cache 1; }
    if ($http_cookie ~* "wordpress_logged_in") { set $skip_cache 1; }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm-wordpress.sock;
        include fastcgi_params;
        fastcgi_cache WORDPRESS;
        fastcgi_cache_valid 200 60m;
        fastcgi_cache_bypass $skip_cache;
        add_header X-FastCGI-Cache $upstream_cache_status;
    }

    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

Объектный кэш Redis

hljs bash
sudo apt install redis-server -y
maxmemory 256mb
maxmemory-policy allkeys-lru
save ""
hljs php
// Добавить в wp-config.php
define('WP_REDIS_HOST', '/var/run/redis/redis-server.sock');
define('WP_REDIS_PORT', 0);

Оптимизация MariaDB

hljs ini
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_type = 1
query_cache_size = 64M
max_connections = 150
tmp_table_size = 64M

Конфигурация OPcache

hljs ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.jit=1255
opcache.jit_buffer_size=128M

Настройка CDN

CDN (сеть доставки контента) распределяет ваши статические файлы по серверам по всему миру, сокращая время загрузки.

Интеграция с Cloudflare

  1. Зарегистрируйтесь в Cloudflare и добавьте домен
  2. Перенесите DNS-записи в Cloudflare
  3. Установите режим SSL/TLS на «Full (Strict)»
  4. Установите плагин Cloudflare в WordPress

Конфигурация безопасности WordPress

hljs php
define('DISALLOW_FILE_EDIT', true);
define('FORCE_SSL_ADMIN', true);
define('WP_DEBUG', false);

Для улучшения производительности WordPress сначала применяйте оптимизации с наибольшим эффектом: 1) OPcache, 2) кэш FastCGI, 3) объектный кэш Redis, 4) CDN. Эти четыре шага ускоряют большинство сайтов WordPress в 5-10 раз.