hostprofi.ru
Подобрать хостинг
Термин·буква В

Веб-сервер

краткое определение

Веб-сервер — программа, принимающая HTTP/HTTPS-запросы от браузеров и возвращающая HTML-страницы, файлы или данные API. Самые распространённые: nginx, Apache, Caddy.

Веб-сервер — программа, которая слушает входящие TCP-соединения на порту 80 (HTTP) и 443 (HTTPS), разбирает HTTP-запросы и формирует ответы. Статические файлы (HTML, CSS, JS, изображения) отдаются напрямую с диска. Динамический контент генерируется через FastCGI (PHP-FPM), WSGI (Python), Rack (Ruby) или обратный прокси к приложению на внутреннем порту.

Как обрабатывается запрос

  1. TCP-соединение установлено; при HTTPS — TLS-рукопожатие (1–2 RTT или 0-RTT при HTTP/3)
  2. Браузер отправляет запрос: GET /page.html HTTP/2 Host: example.com
  3. Сервер определяет виртуальный хост по заголовку Host
  4. Ищет файл по filesystem root или проксирует запрос приложению
  5. Возвращает ответ: статус-код (200, 301, 404...), заголовки и тело

Для PHP: запрос передаётся через FastCGI-сокет в PHP-FPM. PHP выполняет скрипт, обращается к СУБД, формирует HTML и возвращает его через FastCGI обратно веб-серверу, который отдаёт клиенту.

История

Первый веб-сервер — CERN httpd, запущен Тимом Бернерс-Ли в 1990 году на компьютере NeXT. В 1995 году появился Apache HTTP Server — к 1996 году занял более 50% рынка. Microsoft выпустила IIS в 1995 году для Windows NT. Nginx написал Игорь Сысоев в 2002 году для решения C10K-проблемы (10 000 одновременных соединений при малом потреблении RAM). К 2024 году Nginx занимает около 34% рынка по данным Netcraft, Apache — около 27%.

Популярные веб-серверы

СерверДоля рынка (2024)Особенности
Nginx~34%Event-driven, высокая нагрузка, reverse proxy
Apache~27%.htaccess, mod_rewrite, модульная архитектура
Cloudflare Server~22%Встроен в Cloudflare CDN
IIS~7%Windows Server, ASP.NET
LiteSpeed / OpenLiteSpeed~4%Drop-in Apache, встроенный LSCache
Caddy<1%Автоматический HTTPS через Let's Encrypt

Виды обработки запросов

Prefork MPM (Apache): каждый запрос обрабатывает отдельный процесс. Стабильно, изолировано, но память на каждый процесс 20–50 МБ. Event MPM (Apache) и nginx: event loop обрабатывает множество соединений в одном потоке, keepalive-соединения не блокируют воркеры — меньше RAM при той же нагрузке. При 1 000 одновременных keepalive-соединений nginx потребляет ~2 МБ, Apache prefork — 50+ МБ.

Веб-сервер как reverse proxy

Reverse proxy — конфигурация, при которой веб-сервер проксирует запросы к backend-приложению (Node.js, Python, Go, Java). Nginx передаёт через директиву proxy_pass http://127.0.0.1:3000. Это позволяет фронтенд-серверу обрабатывать SSL, кэшировать статику и сжимать ответы, пока backend занимается только бизнес-логикой.

На что обращать внимание

Выбор веб-сервера влияет на производительность, безопасность и гибкость настройки. Виртуальный хостинг — обычно Apache или LiteSpeed (поддержка .htaccess). VPS под высокую нагрузку — Nginx или Nginx + PHP-FPM. Контейнерные среды — Nginx или Traefik как ingress-контроллер. Caddy — хороший выбор для быстрого старта с автоматическим HTTPS без ручной настройки Certbot.

Другие термины