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

Обновлено: Сентябрь 2026 Стек: Nginx 1.26+ / 1.27++, 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/shop.example.com.conf

    listen 80;
    server_name shop.example.com www.shop.example.com;
    return 301 https://shop.example.com$request_uri;
}

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

    root /var/www/shop.example.com/public_html;

    # Security Headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;

    index index.php index.html;

    ssl_certificate /etc/letsencrypt/live/shop.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/shop.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 128M;

    # Исключения кэширования для 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/php8.2-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/php8.2-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 уникальных посетителей/день
4 CPU / 8 GB NVMe
⚡

Timeweb Cloud

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM (4 GB MariaDB Buffer Pool, 3 GB PHP-FPM, 1 GB Redis) / 80 GB NVMe SSD
4 vCPU / 8 GB RAM
🔷

Selectel

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 8 GB RAM (4 GB MariaDB Buffer Pool, 3 GB PHP-FPM, 1 GB Redis) / 80 GB NVMe SSD
Turbo 8 GB
🟠

Beget

Рекомендуемые ресурсы
4 vCPU (3.5+ GHz) / 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 секунд для выполнения интеграций платёжных шлюзов.