Конфигурация Nginx для WooCommerce: оптимизация корзины, оформления заказа и AJAX

Обновлено: Август 2026 Стек: Nginx 1.24+, PHP 8.2, WooCommerce 8.x / WordPress 6.x Проверено: Production-Ready

Готовый конфиг Nginx для интернет-магазина WooCommerce: исключение кэша корзины и checkout, ускорение wc-ajax, защита админки и буферизация заказов.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/nginx/sites-available/shop.example.com.conf
# /etc/nginx/sites-available/{{domain}}.conf
server {
    listen 80;
    server_name {{domain}} www.{{domain}};
    return 301 https://{{domain}}$request_uri;
}

server {
    listen 443 ssl http2;
    server_name {{domain}};

    root /var/www/{{domain}}/public_html;
    index index.php index.html;

    ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/{{domain}}/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size {{client_max_body}};

    # Исключения кэширования для WooCommerce
    set $skip_cache 0;
    if ($request_method = POST) { set $skip_cache 1; }
    if ($query_string != "") { set $skip_cache 1; }
    if ($request_uri ~* "/cart.*|/checkout.*|/my-account.*|/addons.*|/wc-api.*|wp-admin|/xmlrpc.php") {
        set $skip_cache 1;
    }
    if ($http_cookie ~* "woocommerce_items_in_cart|woocommerce_cart_hash|wp_woocommerce_session_|wordpress_logged_in") {
        set $skip_cache 1;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # Оптимизация AJAX WooCommerce (wc-ajax=get_refreshed_fragments)
    location ~* wc-ajax= {
        fastcgi_pass unix:/run/php/php{{php_version}}-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_buffering off;
        fastcgi_read_timeout 60s;
    }

    location ~* \\.(jpg|jpeg|png|gif|ico|css|js|webp|avif|woff2)$ {
        expires 365d;
        add_header Cache-Control "public, no-transform, max-age=31536000";
        access_log off;
    }

    location ~ \\.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php{{php_version}}-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_cache_bypass $skip_cache;
        fastcgi_no_cache $skip_cache;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 256 16k;
        fastcgi_read_timeout 300s;
    }
}

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
if ($http_cookie ~* 'woocommerce_items_in_cart') set $skip_cache 1; Мгновенно отключает кэш FastCGI, как только покупатель добавляет первый товар в корзину, сохраняя актуальность счетчика корзины.
location ~* wc-ajax= fastcgi_buffering off; Отключает буферизацию AJAX-фрагментов WooCommerce, ускоряя обновление мини-корзины и оформление заказа.
fastcgi_read_timeout 300s 300s Предотвращает тайм-аут 504 Gateway Timeout при массовом импорте прайс-листов CSV и синхронизации с 1С/МойСклад.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 4 vCPU, 8 GB RAM, 80 GB NVMe, Debian 12 / Ubuntu 22.04
Расчетная нагрузка: до 10 000 товаров, ~3 000 уникальных посетителей/день
Timeweb Cloud
4 CPU / 8 GB NVMe
Процессор: 4 vCPU (3.5+ GHz)
Память RAM: 8 GB RAM (4 GB MariaDB Buffer Pool, 3 GB PHP-FPM, 1 GB Redis)
Накопитель: 80 GB NVMe SSD
🔷 Selectel
4 vCPU / 8 GB RAM
Процессор: 4 vCPU (3.5+ GHz)
Память RAM: 8 GB RAM (4 GB MariaDB Buffer Pool, 3 GB PHP-FPM, 1 GB Redis)
Накопитель: 80 GB NVMe SSD
🟠 Beget
Turbo 8 GB
Процессор: 4 vCPU (3.5+ GHz)
Память RAM: 8 GB RAM (4 GB MariaDB Buffer Pool, 3 GB PHP-FPM, 1 GB Redis)
Накопитель: 80 GB NVMe SSD

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Почему корзина очищается при переходе между страницами?
Это происходит, если FastCGI-кэш кэширует заголовки Set-Cookie сессии. Убедитесь, что директивы проверки кук `woocommerce_items_in_cart` и `wp_woocommerce_session_` добавлены в блок `if ($http_cookie ...)`.
Ошибка 504 Gateway Timeout при оформлении заказа
Увеличьте `fastcgi_read_timeout` в Nginx и `max_execution_time` в php.ini до 300 секунд для выполнения интеграций платёжных шлюзов.