Skip to main content

Веб-серверы

Что такое веб-сервер?

Веб-сервер — это программное обеспечение, которое обрабатывает HTTP-запросы и отдает клиентам (браузерам) веб-страницы, файлы и данные.

Основные функции:

  • Прием запросов от браузеров по протоколам HTTP/HTTPS
  • Обработка запросов и поиск запрашиваемых ресурсов
  • Отдача контента — HTML-страниц, CSS, JavaScript, изображений, API-ответов
  • Логирование всех обращений и ошибок
  • Балансировка нагрузки между несколькими приложениями

Для чего нужен веб-сервер на нашем сервере?

На 192.168.0.103 веб-серверы обеспечивают:

  • Хостинг веб-сайтов и веб-приложений
  • Проксирование запросов к внутренним сервисам (Node.js, Python, PHP)
  • Раздачу статических файлов — документации, медиа-контента
  • SSL/TLS терминацию для HTTPS подключений
  • Кэширование для ускорения загрузки

Nginx vs Apache: в чем разница?

Архитектурные различия

АспектApacheNginx
АрхитектураПроцессно-ориентированная (MPM)Событийно-ориентированная
Подход к соединениямОдин процесс/поток на соединениеОдин рабочий процесс на множество соединений
ПамятьБольше потребляет при высокой нагрузкеЭкономичнее при многих одновременных подключениях
СтатикаХорошоОтлично (быстрее в 2-3 раза)

Конфигурация

АспектApacheNginx
Конфиги.htaccess (per-directory)Централизованная конфигурация
СинтаксисXML-подобныйСвой DSL (более лаконичный)
Динамическая перезагрузкаGraceful restartБез перезапуска (reload config)
МодулиДинамическая загрузкаЧаще перекомпиляция

Производительность и нагрузка

СценарийApache лучшеNginx лучше
Много одновременных соединений
Статические файлы
Динамический контент (PHP, Python)✅ (mod_php)(через FastCGI)
Обратный прокси/балансировщик
Совместное использование✅ (mod_wsgi)✅ (uWSGI)

Плюсы и минусы

Apache (httpd)

✅ Преимущества:

  • .htaccess — гибкая конфигурация на уровне директорий
  • Модульность — огромное количество модулей
  • Лучшая интеграция с PHP через mod_php
  • Проще конфигурация для начинающих

❌ Недостатки:

  • Медленнее при статическом контенте
  • Больше потребление памяти при высокой нагрузке
  • Менее эффективен при DDoS/высокой нагрузке

Nginx

✅ Преимущества:

  • Высокая производительность при статике
  • Эффективная работа с тысячами одновременных соединений
  • Отличный обратный прокси и балансировщик нагрузки
  • Меньшее потребление памяти

❌ Недостатки:

  • Нет .htaccess (централизованная конфигурация)
  • Менее гибкая работа с динамическим контентом
  • Сложнее для новичков

Что где использовать на нашем сервере?

На 192.168.0.103 установлены оба:

СервисВеб-серверПочему
Основные сайтыNginxПроизводительность, статика
PHP-приложенияApache (или Nginx + PHP-FPM)Гибкость, совместимость
Обратный проксиNginxБалансировка, SSL терминация
Статические файлыNginxСкорость отдачи
Гитлаб (GitLab)Встроенный (Puma/Unicorn) + Nginx proxy

Типичная схема работы:

Браузер → Nginx (порт 80/443) → Статика

Динамический контент → Apache (порт 8080) → PHP

Прокси → Внутренние сервисы (Node.js:3000, Python:5000)

Базовые команды управления

# Проверить статус
sudo systemctl status nginx
sudo systemctl status apache2

# Перезапустить
sudo systemctl restart nginx

# Посмотреть логи
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/apache2/error.log

Где находятся конфиги?

# Nginx
/etc/nginx/
├── nginx.conf # Основной конфиг
├── sites-available/ # Доступные сайты
└── sites-enabled/ # Активные сайты (симлинки)

# Apache
/etc/apache2/
├── apache2.conf # Основной конфиг
├── sites-available/ # Доступные сайты
├── sites-enabled/ # Активные сайты
└── mods-available/ # Модули