Конфигурация NGINX для DevOps: секрет Serverion для развертывания с нулевым временем простоя
Развертывания с нулевым временем простоя означает обновление вашего приложения без прерывания обслуживания — обязательно для предприятий, где даже кратковременный сбой может стоить миллионы. NGINX делает это возможным с помощью своей модели процесса master-worker и интеллектуальных сигналов, таких как УСР2 (запустить новые процессы) и ХУП (перезагрузить конфигурацию). Вот ключ:
- Как это работает: NGINX переключает трафик со старых рабочих процессов на обновленные, не разрывая соединения.
- Ключевые шаги: Используйте сигналы (
УСР2,ХУПи т.д.), настроитьnginx.confправильно и проверьте изменения перед перезагрузкой. - Методы: Объедините NGINX с такими методами, как сине-зеленые развертывания или Docker, для бесшовных обновлений.
- Проверки здоровья: Убедитесь, что только исправные серверы обрабатывают трафик, используя пассивные или активные проверки работоспособности NGINX.
Правильная настройка позволит вам обеспечить бесперебойную работу своих служб во время обновлений, защитить доход и сохранить доверие клиентов.
Основы NGINX для развертывания с нулевым временем простоя

Объяснение развертывания с нулевым временем простоя
NGINX использует модель master-worker для обработки обновлений без прерывания обслуживания. Главный процесс контролирует конфигурацию и управление, а рабочие процессы управляют клиентскими соединениями. Такая настройка позволяет трафику плавно переключаться со старых рабочих на новые во время обновлений, обеспечивая бесперебойное обслуживание.
Управление соединениями NGINX
NGINX использует определенные сигналы для управления процессами во время обновлений или изменений конфигурации:
- УСР2: Запускает новые главные и рабочие процессы.
- ЛЕБЕДКА: корректно останавливает старые рабочие процессы.
- ХУП: Перезагружает конфигурацию и заменяет рабочих.
- ПОКИДАТЬ: Плавно отключает главный и рабочие процессы.
При перезагрузке NGINX перемещает старый идентификатор главного процесса на /run/nginx.pid.oldbin, записывает новый идентификатор главного процесса в /run/nginx.pidи позволяет старым работникам завершать активные запросы перед отключением.
Современные развертывания приложений: как использовать NGINX и JFrog для…

Настройка NGINX для непрерывной работы
Чтобы поддерживать активные соединения во время перезагрузки, воспользуйтесь преимуществами архитектуры master-worker NGINX со следующими настройками.
Основные этапы настройки NGINX
Включать multi_accept чтобы позволить работникам обрабатывать несколько подключений на одно событие. Вот пример конфигурации для nginx.conf:
worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; multi_accept on; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Перезагрузка конфигурации без простоя
- Перезагрузите текущие воркеры, чтобы применить изменения:
nginx -s перезагрузка - Проверьте обновленный идентификатор главного процесса:
кот /run/nginx.pid - Выполните двоичное обновление без остановки трафика:
убить -USR2 $(cat /run/nginx.pid) убить -WINCH $(cat /run/nginx.pid.oldbin)
Эти шаги позволяют плавно переключать трафик между старыми и новыми работниками, обеспечивая бесперебойное обслуживание.
sbb-itb-59e1987
Методы развертывания с помощью NGINX
Вы можете использовать NGINX для достижения развертываний с нулевым временем простоя, используя такие методы, как сине-зеленые настройки или подходы на основе контейнеров.
Настройка развертывания Blue-Green
С помощью NGINX вы можете управлять трафиком между двумя средами — обычно называемыми синий а также зеленый. Эти среды идентичны, но в каждый момент времени активна только одна. Вот как это работает:
- Разверните обновленную версию в неактивной среде (например, зеленой).
- Запустите проверки работоспособности, чтобы убедиться, что новая версия функционирует правильно.
- После проверки обновите Конфигурация NGINX для маршрутизации трафика в обновленную среду.
- Перезагрузите конфигурацию с помощью
ХУПсигнал, чтобы избежать разрыва активных соединений.
Этот метод обеспечивает плавный переход без перерывов в обслуживании.
Интеграция Docker и NGINX
Использование Docker с NGINX оптимизирует развертывания, поддерживая согласованные среды для обоих уровней приложений и прокси. Вот как можно добиться обновлений с нулевым временем простоя:
- Запустите новый контейнер рядом с текущим активным.
- Выполните проверку работоспособности, чтобы убедиться, что новый контейнер готов.
- Измените конфигурацию восходящего потока NGINX, включив в нее новый контейнер.
- Перезагрузите конфигурацию с помощью
ХУПсигнал, позволяющий старым рабочим завершить обработку перед уходом.
Такой подход обеспечивает бесперебойную работу при обновлении вашего приложения.
Тестирование и проверка
Настроить проверки работоспособности
Проверки работоспособности NGINX помогают гарантировать, что только функциональные серверы обрабатывают трафик. Эти проверки работают вместе с конфигурацией восходящего потока и маршрутизацией blue-green. NGINX предлагает два типа проверок работоспособности: пассивный (доступно в NGINX Open Source) и активный (только для NGINX Plus).
Для пассивных проверок работоспособности в NGINX Open Source настройте свой upstream-блок следующим образом:
восходящий бэкэнд { сервер backend1.serverion.com:8080 max_fails=3 fail_timeout=30 с; сервер backend2.serverion.com:8080 max_fails=3 fail_timeout=30 с; зона бэкэнд 64 КБ; } Если вы используете NGINX Plus, вы можете включить активные проверки работоспособности, добавив проверка_здоровья директива вместе с соответствовать блокировать:
location / { proxy_pass http://backend; health_check interval=5s fails=3 passed=2 required persistent; match health_check { status 200; header Content-Type = application/json; body ~ '"status":"UP"'; } } Обязательно проверьте эти конфигурации перед перезагрузкой NGINX.
Проверить конфигурацию
Всегда проверяйте правильность конфигурации NGINX перед перезагрузкой. Используйте следующую команду:
nginx -t -c /путь/к/вашему/nginx.conf Основы развертывания с нулевым временем простоя
Достижение развертывания с нулевым временем простоя зависит от тщательной настройки NGINX и надежного планирования инфраструктуры. Эти элементы работают вместе, чтобы гарантировать, что обновления происходят без перерывов.
Вот ключевые факторы успеха:
- Контроль процесса и проверка конфигурации: Используйте все преимущества архитектуры NGINX, придерживаясь при этом протоколов тщательного тестирования.
- Стабильность инфраструктуры: Поддерживайте стабильную производительность и соблюдайте меры безопасности на протяжении всего процесса развертывания.
Подробную информацию о проверках работоспособности и шагах отката см. в разделе Тестирование и проверка раздел.
ServerionПлатформа поддерживает эти усилия надежной стабильностью и безопасностью. Ее глобальные центры обработки данных поддерживайте стабильную производительность во время обновлений, а встроенная защита от DDoS-атак гарантирует сохранение безопасности.
Начните с малого, используя переключатели функций на некритических сервисах. Постепенно увеличивайте масштаб, сохраняя регулярное тестирование, тщательный мониторинг и четкие планы отката в центре вашей стратегии.
Похожие записи в блоге
- Освоение конфигураций Nginx для оптимальной производительности веб-сервера
- Освоение конфигурации NGINX: как Serverion открывает путь к успеху в сфере веб-хостинга B2B
- Перемотка конфигурации NGINX: Serverion возрождает забытое искусство настройки кэша прокси-сервера
- Забытый рубеж конфигурации NGINX: погружение Serverion в FastCGI-микрокэшинг