Веб-разработка

Nginx или Apache: что выбрать для сайта и как они работают вместе

Сравниваем Apache, nginx с PHP-FPM и их связку: как работают, чем отличаются и что выбрать для вашего сайта.

Nginx или Apache: что выбрать для сайта и как они работают вместе

Для большинства современных сайтов лучший выбор — nginx, либо связка nginx + Apache, где nginx принимает запросы и отдаёт статику, а Apache обрабатывает PHP и правила .htaccess. Чистый nginx с PHP-FPM быстрее и экономнее расходует память, а Apache удобен там, где сайт зависит от .htaccess и где нет доступа к общей конфигурации сервера, как на виртуальном хостинге.

Разберёмся, чем отличаются эти веб-серверы, как они работают вместе и какой вариант выбрать под ваш проект — лендинг, сайт на WordPress, интернет-магазин на 1С-Битрикс или собственное приложение.

Веб-сервер принимает и обрабатывает запросы посетителей сайта

Что такое веб-сервер и зачем он нужен

Веб-сервер — это программа, которая принимает запросы браузеров по протоколам HTTP и HTTPS и возвращает ответы: HTML-страницы, картинки, стили, скрипты. Если запрошен статический файл, веб-сервер просто отдаёт его с диска. Если нужна динамическая страница, он передаёт запрос интерпретатору PHP (или другому приложению) и возвращает результат.

Apache и nginx — два самых распространённых веб-сервера с открытым исходным кодом. Оба бесплатны, стабильны и поддерживаются любыми хостингами и панелями управления. Разница — в архитектуре и в том, как они ведут себя под нагрузкой.

Как работает Apache

Apache появился в середине 1990-х и долго был стандартом. Он обрабатывает соединения с помощью процессов или потоков (модули MPM: prefork, worker, event). В классическом режиме prefork каждое соединение занимает отдельный процесс, и PHP может работать прямо внутри Apache через модуль mod_php.

Сильные стороны Apache

  • Файлы .htaccess: правила переадресации, ЧПУ и защиты можно менять в папке сайта без доступа к общей конфигурации и без перезапуска сервера.
  • Огромное количество модулей и документации, привычность для разработчиков CMS.
  • Многие CMS и плагины «из коробки» рассчитывают на .htaccess: WordPress, 1С-Битрикс, Joomla.

Слабые стороны Apache

  • Под большим числом одновременных соединений расходует больше памяти, особенно в режиме prefork.
  • Проверка .htaccess при каждом запросе немного замедляет работу.
  • Отдача статики медленнее, чем у nginx.

Как работает nginx

Nginx создавался для обслуживания огромного числа одновременных соединений. Он использует событийную модель: несколько рабочих процессов асинхронно обрабатывают тысячи соединений, не создавая отдельный процесс на каждое. Поэтому nginx экономно расходует память и очень быстро отдаёт статические файлы.

Сам nginx PHP не выполняет. Динамические запросы он передаёт PHP-FPM — отдельному менеджеру процессов PHP — через протокол FastCGI. Типичный фрагмент конфигурации:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}

Сильные стороны nginx

  • Высокая производительность и низкое потребление памяти.
  • Встроенные функции обратного прокси, балансировки нагрузки и кэширования (FastCGI-кэш, proxy_cache).
  • Удобен как «фасад» перед любыми приложениями: PHP, Node.js, Python, Docker-контейнерами.

Слабые стороны nginx

  • Не поддерживает .htaccess: все правила пишутся в общей конфигурации, нужен доступ к серверу.
  • После изменения конфигурации нужна перезагрузка службы.
  • Правила переадресации из .htaccess приходится переводить в синтаксис nginx вручную.
Настройка конфигурации веб-сервера на Linux

Связка nginx + Apache: как они работают вместе

Это компромисс, который много лет используют хостинги и панели управления. Nginx стоит «на входе» и слушает порты 80 и 443. Запросы к картинкам, стилям и скриптам он обслуживает сам, а запросы к PHP-страницам передаёт Apache, работающему на внутреннем порту. Apache выполняет PHP и учитывает .htaccess, затем возвращает ответ nginx, который отправляет его посетителю.

Схема выглядит так:

  1. Браузер отправляет запрос на сервер.
  2. Nginx принимает его и проверяет, статический ли это файл.
  3. Если да — сразу отдаёт файл с диска.
  4. Если нет — проксирует запрос Apache (обычно на 127.0.0.1 и отдельный порт).
  5. Apache выполняет PHP, применяет .htaccess и возвращает HTML.
  6. Nginx отдаёт ответ браузеру, при необходимости сжимая и кэшируя его.

Плюс связки — совместимость со всеми CMS и привычными .htaccess при быстрой отдаче статики. Минус — два сервера потребляют больше ресурсов, чем один nginx с PHP-FPM, а конфигурацию сложнее отлаживать: нужно следить, чтобы Apache видел реальный IP посетителя и знал, что запрос пришёл по HTTPS.

Совет: в связке nginx + Apache включите модуль mod_remoteip в Apache. Иначе в логах и в CMS все посетители будут выглядеть как 127.0.0.1, а защита от перебора паролей и антиспам перестанут работать корректно.

Сравнительная таблица

Критерий Apache Nginx + PHP-FPM Nginx + Apache
Отдача статики Средне Очень быстро Очень быстро
Расход памяти Выше Ниже всего Средний
Поддержка .htaccess Да Нет Да
Сложность настройки Низкая Средняя Средняя
Кэширование на уровне сервера Модулями Встроенное Встроенное в nginx
Типичный сценарий Простые сайты, старые проекты Нагруженные сайты, VPS Хостинг, панели, CMS

Что выбрать под ваш проект

Лендинг или сайт-визитка

Разницы вы, скорее всего, не заметите. Если сайт на виртуальном хостинге, используйте то, что предлагает провайдер. Обычно это уже связка nginx + Apache, где вы можете править .htaccess.

WordPress, блог, корпоративный сайт

На хостинге — стандартная связка. На VPS — nginx + PHP-FPM с FastCGI-кэшем даст лучшую скорость, но правила ЧПУ из .htaccess нужно перенести в конфигурацию nginx (для WordPress это одна строка try_files $uri $uri/ /index.php?$args;).

Интернет-магазин и 1С-Битрикс

Готовое окружение «Виртуальная машина Битрикс» использует nginx перед Apache, и это проверенный вариант. Для собственных сборок на VPS выбирайте nginx + PHP-FPM, если в команде есть кто-то, кто будет поддерживать конфигурацию.

Приложения на Node.js, Python, в Docker

Здесь Apache почти не используется: nginx работает обратным прокси перед приложением, выдаёт SSL-сертификаты и распределяет нагрузку. Подробнее о контейнерах — в статье Docker на VPS для бизнеса.

Сравнение производительности веб-серверов

Как узнать, какой веб-сервер стоит у вас

Самый простой способ — посмотреть заголовок Server в ответе сайта:

curl -I https://example.ru/

В выводе будет строка вида server: nginx или Server: Apache. Иногда заголовок скрыт из соображений безопасности — тогда уточните у поддержки хостинга или посмотрите в панели управления. На своём VPS можно проверить запущенные службы:

systemctl status nginx
systemctl status apache2

Переход с Apache на nginx: на что обратить внимание

  1. Сделайте резервную копию сайта и текущей конфигурации.
  2. Выпишите все правила из .htaccess: редиректы, ЧПУ, запреты доступа к папкам.
  3. Перенесите их в конфигурацию nginx и проверьте синтаксис командой sudo nginx -t.
  4. Настройте PHP-FPM нужной версии и пул процессов.
  5. Проверьте сайт на тестовом домене или через файл hosts до переключения.
  6. Проверьте редиректы с http на https и с www на без www — ошибки здесь бьют по SEO.
  7. После переключения следите за журналом ошибок: sudo tail -f /var/log/nginx/error.log.

Важно: плагины безопасности и кэширования для WordPress часто пишут правила в .htaccess. На чистом nginx эти правила просто перестают действовать, и вы можете не заметить, что защита отключилась.

Где разместить сайт

На виртуальном хостинге выбор веб-сервера делает провайдер, и обычно это хорошо настроенная связка. Например, у Timeweb или SprintHost можно сразу запустить сайт на CMS без настройки сервера. Если нужен полный контроль над nginx и PHP-FPM, берите VPS: Timeweb Cloud и AdminVPS предлагают серверы с Ubuntu и готовыми образами. Сравнить провайдеров помогает наш обзор Timeweb и Timeweb Cloud, а о том, когда пора переезжать, мы писали в статье виртуальный хостинг или VPS.

Выбор веб-сервера под задачи бизнеса

Частые вопросы

Влияет ли выбор веб-сервера на SEO?

Напрямую — нет. Косвенно — да: от него зависят скорость ответа, корректность редиректов и стабильность под нагрузкой, а это поисковики учитывают.

Можно ли использовать .htaccess на nginx?

Нет. Nginx не читает эти файлы. Правила нужно перенести в конфигурацию сервера; для этого есть онлайн-конвертеры, но их результат всегда стоит проверять вручную.

Что такое LiteSpeed и OpenLiteSpeed?

Это альтернативные веб-серверы, совместимые с .htaccess и ориентированные на скорость. Их используют некоторые хостинги, но в России они распространены меньше, чем nginx и Apache.

Нужно ли что-то менять, если сайт и так работает быстро?

Нет. Если время ответа в норме и сервер не перегружен, менять архитектуру ради моды не стоит — проще держать в порядке версию PHP и кэш.

Если не хотите разбираться сами

Мы в Pear Advert настраиваем nginx, Apache и PHP-FPM под конкретные CMS, переносим правила .htaccess и проверяем редиректы, чтобы переезд не ударил по позициям. Если не хотите разбираться сами — поможем подобрать и настроить сервер: подробнее на странице аренда сервера и хостинга.

В статье есть партнёрские ссылки: если вы зарегистрируетесь по ним, студия получит вознаграждение, для вас цена не меняется.

Читать дальше

Статьи по теме

Начать проект

Давайте сделаем крутой проект вместе

Расскажите о задаче — мы бесплатно проанализируем нишу, предложим решение и назовём сроки со стоимостью. Без навязчивых звонков.

Телефон

8 (926) 837 76 68

Почта

info@pear-advert.ru

Офис

Москва, ул. Гиляровского, 57с1

Оставьте заявку

Ответим в течение рабочего дня

Выберите тип проекта

Данные используются только для ответа на заявку и хранятся не дольше трёх лет.