Веб-серверы
Что такое веб-сервер?
Веб-сервер — это программное обеспечение, которое обрабатывает HTTP-запросы и отдает клиентам (браузерам) веб-страницы, файлы и данные.
Основные функции:
- Прием запросов от браузеров по протоколам HTTP/HTTPS
- Обработка запросов и поиск запрашиваемых ресурсов
- Отдача контента — HTML-страниц, CSS, JavaScript, изображений, API-ответов
- Логирование всех обращений и ошибок
- Балансировка нагрузки между несколькими приложениями
Для чего нужен веб-сервер на нашем сервере?
На 192.168.0.103 веб-серверы обеспечивают:
- Хостинг веб-сайтов и веб-приложений
- Проксирование запросов к внутренним сервисам (Node.js, Python, PHP)
- Раздачу статических файлов — документации, медиа-контента
- SSL/TLS терминацию для HTTPS подключений
- Кэширование для ускорения загрузки
Nginx vs Apache: в чем разница?
Архитектурные различия
| Аспект | Apache | Nginx |
|---|---|---|
| Архитектура | Процессно-ориентированная (MPM) | Событийно-ориентированная |
| Подход к соединениям | Один процесс/поток на соединение | Один рабочий процесс на множество соединений |
| Память | Больше потребляет при высокой нагрузке | Экономичнее при многих одновременных подключениях |
| Статика | Хорошо | Отлично (быстрее в 2-3 раза) |
Конфигурация
| Аспект | Apache | Nginx |
|---|---|---|
| Конфиги | .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/ # Модули
📄️ Apache HTTP Server
Руководство по установке, настройке и работе с Apache на сервере 192.168.0.103
📄️ Nginx Web Server
Руководство по установке, настройке и работе с Nginx на сервере 192.168.0.103