Как настроить Nginx для WordPress: пошаговая инструкция
Настроим Nginx для WordPress 6.x: подключим PHP-FPM, включим красивые постоянные ссылки и проверим конфигурацию до перезагрузки сервера. Понадобятся SSH-доступ и уже установленный сайт.

Что понадобится
За 30–60 минут вы настроите Nginx для WordPress 6.x: сайт начнёт открывать страницы по красивым ссылкам, а PHP-запросы будут передаваться PHP-FPM. Инструкция рассчитана на Linux-сервер, где WordPress и PHP-FPM уже установлены. Команды и расположение файлов могут отличаться в зависимости от дистрибутива.
- SSH-доступ с правами на редактирование конфигурации Nginx.
- Домен, направленный на IP-адрес сервера.
- Путь к корневой папке WordPress. Ниже используется
/var/www/wordpress. - Адрес PHP-FPM: Unix-сокет или TCP-порт, который указан в настройках PHP-FPM.
- Установленные Nginx, PHP-FPM и WordPress. Для HTTPS заранее получите сертификат или подготовьте его выпуск.
В примерах команды запускаются от имени пользователя с правами администратора. Перед редактированием сохраните копию текущего файла конфигурации.
Не перезагружайте Nginx после правки вслепую: сначала проверьте конфигурацию командой
nginx -t. Одна ошибка в синтаксисе может оставить сайт без веб-сервера.
Настройка по шагам
- Найдите корень сайта и проверьте права. В WordPress корнем обычно служит папка, где находятся
wp-admin,wp-contentиwp-includes. Убедитесь, что Nginx может читать файлы сайта, а PHP-FPM — читать файлы и записывать туда, где это требуется, например в загрузки. Не назначайте всему каталогу права на запись для всех пользователей.Проверка: в корневой папке видны перечисленные каталоги, а владелец сайта может загружать файл через административную панель.
- Уточните адрес PHP-FPM. Посмотрите настройки пула PHP-FPM: параметр
listenзадаёт Unix-сокет или TCP-адрес, куда Nginx отправляет запросы. Для Debian и Ubuntu имя сокета часто содержит версию PHP, но его нельзя угадывать. Укажите в конфигурации ниже ровно то значение, которое настроено на сервере.Проверка: вы знаете точный путь к сокету или порт; служба PHP-FPM запущена.
- Создайте конфигурацию сайта. В системах с каталогом
/etc/nginx/sites-availableсоздайте там файл, напримерwordpress.conf. В других дистрибутивах используйте каталог виртуальных хостов, который подключён из основной конфигурации Nginx. Замените домен, путь к сайту и адрес PHP-FPM на свои значения.
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
root /var/www/wordpress;
index index.php;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~* \\.(css|gif|ico|jpeg|jpg|js|png|svg|webp)$ {
expires max;
log_not_found off;
}
location ~* /\\.(?!well-known) {
deny all;
}
location ~* ^/wp-content/uploads/.*\\.php$ {
deny all;
}
location ~ \\.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
В примере разрешён размер запроса до 64 МБ. Если загрузки WordPress больше этого значения, согласуйте лимит с настройками PHP и увеличьте его. Строка fastcgi_pass приведена как пример: замените её на реальный адрес PHP-FPM. В конфигурации также должны подключаться стандартные параметры FastCGI, как показано в примере.
Проверка: сохраните файл. Убедитесь, что имя домена в server_name совпадает с доменом сайта, а root указывает именно на папку с WordPress.
- Подключите виртуальный хост. Если ваш дистрибутив использует каталоги
sites-availableиsites-enabled, создайте ссылку на файл из второго каталога. Если конфигурации подключаются иначе, следуйте принятому на сервере способу и проверьте, что новый файл входит в конфигурацию Nginx.Проверка: команда
nginx -tсообщает, что синтаксис корректен и проверка прошла успешно. Если команда указывает на строку с ошибкой, исправьте её до перезагрузки. - Примените настройки. Если проверка прошла, выполните
systemctl reload nginx. Перезагрузка конфигурации не должна обрывать активные соединения так, как это может сделать остановка службы.Проверка: домен открывается в браузере, а команда
systemctl status nginxпоказывает, что служба работает. - Проверьте постоянные ссылки. В панели WordPress откройте настройки постоянных ссылок и выберите подходящий формат. Если настройки уже выбраны, сохраните их ещё раз. Затем откройте отдельную запись и страницу сайта.
Проверка: URL записи открывается без ошибки 404, а в адресе нет необходимости добавлять
index.php. - Подключите HTTPS. Настройка сертификата зависит от выбранного центра сертификации и способа выпуска. После установки сертификата настройте виртуальный хост на порту 443 и перенаправление с HTTP на HTTPS по документации Nginx и вашего инструмента управления сертификатами. Не включайте редирект, пока HTTPS на домене не работает.
Проверка: сайт открывается по адресу с
https://, браузер не сообщает об ошибке сертификата, а ссылки и ресурсы загружаются по защищённому соединению.
Если сайт не заработал
- 502 Bad Gateway. Nginx не может связаться с PHP-FPM. Сверьте
fastcgi_passсо значениемlistenв конфигурации пула. Для Unix-сокета проверьте, что он существует и доступен пользователю Nginx; для TCP — что PHP-FPM слушает указанный адрес и порт. - 404 на страницах записей. Проверьте, что запросы из
location /передаются вindex.php, а WordPress установлен в каталоге, указанном вroot. Затем пересохраните настройки постоянных ссылок. - 403 Forbidden. Проверьте права на каталог и файлы, а также доступ пользователя Nginx к родительским каталогам. Убедитесь, что вы не запретили доступ к самому каталогу сайта дополнительным правилом.
- 413 Request Entity Too Large. Размер загрузки превышает
client_max_body_size. Увеличьте его в конфигурации Nginx и отдельно проверьте ограничения загрузки в PHP и WordPress. - nginx: [emerg] … Это сообщение означает, что Nginx не смог разобрать конфигурацию. Смотрите указанный в сообщении файл и номер строки; типичные причины — пропущенная точка с запятой, скобка или опечатка в имени директивы.
Что проверить после запуска
Откройте главную страницу, запись, страницу с изображением и административную часть WordPress. Затем изучите журналы ошибок Nginx и PHP-FPM: сообщения о правах доступа или недоступном сокете обычно объясняют сбой быстрее, чем повторная правка конфигурации наугад.
Следующий шаг — настроить HTTPS и резервное копирование, если их ещё нет, а затем проверить сайт после обновления Nginx, PHP или WordPress. При смене версии PHP отдельно проверьте путь к сокету PHP-FPM: он может измениться.
Постоянные ссылки1 — адреса записей и страниц WordPress, сформированные по выбранному шаблону, например с названием записи вместо пути через index.php.
1 Правило try_files в этой конфигурации передаёт неизвестный Nginx адрес в index.php, где WordPress определяет, какую страницу показать.
Дефектный акт по фото: Осмотр по фотографиям: классификация дефектов, ссылки на нормы, требования к устранению. Готовый акт в Word.
Спросить за 80 ₽Источники: WordPress: настройка Nginx, Документация Nginx: модуль ngx_http_core_module
Частые вопросы
Подойдёт ли эта конфигурация для любой версии Nginx?
Почему после настройки главная открывается, а записи дают 404?
Что делать, если я не знаю путь к PHP-FPM?
Можно ли сразу включить перенаправление на HTTPS?
Почему WordPress не принимает большой файл, хотя Nginx настроен?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.