Конфігурація NGINX для DevOps: хитрість Serverion для розгортання без простоїв
Розгортання без простоїв означають оновлення вашої програми без переривання обслуговування – це обов’язково для підприємств, де навіть короткий збій може коштувати мільйони. NGINX робить це можливим за допомогою своєї моделі процесів головного робочого місця та інтелектуальних сигналів ЄДР2 (запуск нових процесів) і HUP (перезавантажити конфігурацію). Ось ключ:
- Як це працює: NGINX перенаправляє трафік від старих робочих до оновлених без розриву з’єднань.
- Ключові кроки: Використовуйте сигнали (
ЄДР2,HUPтощо), налаштуватиnginx.confналежним чином і перевірте зміни перед перезавантаженням. - Техніки: поєднуйте NGINX із такими методами, як синьо-зелені розгортання або Docker для безперебійного оновлення.
- Перевірки стану здоров'я: Переконайтеся, що лише справні сервери обробляють трафік, використовуючи пасивні чи активні перевірки справності NGINX.
За допомогою правильної конфігурації ви зможете забезпечити безперебійну роботу своїх служб під час оновлень, захистити дохід і зберегти довіру клієнтів.
Основи NGINX для розгортання без простоїв

Пояснення розгортання без простоїв
NGINX використовує модель master-worker для обробки оновлень без переривання служби. Головний процес контролює конфігурацію та контроль, тоді як робочі процеси керують підключеннями клієнтів. Це налаштування дозволяє плавно переключати трафік від старих робочих до нових під час оновлень, забезпечуючи безперебійне обслуговування.
Керування з’єднаннями NGINX
NGINX покладається на певні сигнали для керування процесами під час оновлень або змін конфігурації:
- ЄДР2: запускає нові основні та робочі процеси.
- ЛЕБІДКА: елегантно зупиняє старі робочі процеси.
- HUP: перезавантажує конфігурацію та замінює працівників.
- ВИЙТИ: Граціозно вимикає майстра та працівників.
Під час перезавантаження 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; події { worker_connections 1024; multi_accept on; } http { upstream backend { server backend1.example.com:8080; server backend2.example.com:8080; keepalive 32; } сервер { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header З'єднання ""; proxy_set_header Хост $host; proxy_set_header X-Real-IP $remote_addr; } } } Перезавантаження конфігурації без простоїв
- Перезавантажте поточних робочих, щоб застосувати зміни:
nginx -s перезавантаження - Перевірте оновлений ідентифікатор головного процесу:
cat /run/nginx.pid - Виконайте двійкове оновлення без зупинки трафіку:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
Ці кроки дозволяють плавно переходити трафік між старими та новими працівниками, забезпечуючи безперебійне обслуговування.
sbb-itb-59e1987
Методи розгортання з NGINX
Ви можете використовувати NGINX для досягнення нульового простою розгортання, використовуючи такі методи, як синьо-зелені налаштування або підходи на основі контейнерів.
Синьо-зелене налаштування розгортання
За допомогою NGINX ви можете керувати трафіком між двома середовищами, які зазвичай називають блакитний і зелений. Ці середовища ідентичні, але одночасно активним є лише одне. Ось як це працює:
- Розгорніть оновлену версію в неактивному середовищі (наприклад, зеленому).
- Виконайте перевірку працездатності, щоб переконатися, що нова версія працює належним чином.
- Після перевірки оновіть Конфігурація NGINX щоб спрямувати трафік до оновленого середовища.
- Перезавантажте конфігурацію за допомогою
HUPсигналу, щоб уникнути розриву активних з’єднань.
Цей спосіб забезпечує плавний перехід без перерв у роботі.
Інтеграція Docker і NGINX
Використання Docker з NGINX оптимізує розгортання, підтримуючи узгоджене середовище як для ваших програм, так і для рівня проксі. Ось як ви можете досягти нульового простою оновлення:
- Запустіть новий контейнер разом із поточним активним.
- Виконайте перевірку працездатності, щоб переконатися, що новий контейнер готовий.
- Змініть вихідну конфігурацію NGINX, щоб включити новий контейнер.
- Перезавантажте конфігурацію за допомогою
HUPсигнал, що дозволяє старим працівникам завершити обробку, перш ніж вони вийдуть.
Такий підхід забезпечує безперебійне обслуговування під час оновлення програми.
Тестування та перевірка
Налаштувати перевірку працездатності
Перевірки працездатності NGINX допомагають переконатися, що лише функціональні сервери обробляють трафік. Ці перевірки працюють разом із конфігурацією висхідного каналу та синьо-зеленою маршрутизацією. NGINX пропонує два типи перевірки працездатності: пасивний (доступний у NGINX Open Source) і активний (ексклюзивно для NGINX Plus).
Для пасивних перевірок працездатності в NGINX Open Source налаштуйте свій вихідний блок так:
вихідний бекенд { сервер backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; сервер backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; зона бекенд 64k; } Якщо ви використовуєте NGINX Plus, ви можете ввімкнути активні перевірки працездатності, додавши Health_check директива разом з a матч блок:
розташування / { proxy_pass http://backend; health_check interval=5s fails=3 passes=2 обов'язковий постійний; матч health_check { status 200; заголовок Content-Type = application/json; тіло ~ '"status":"UP"'; } } Обов’язково перевірте ці конфігурації перед перезавантаженням NGINX.
Перевірте конфігурацію
Завжди перевіряйте правильність конфігурації NGINX перед перезавантаженням. Використовуйте таку команду:
nginx -t -c /шлях/до/вашого/nginx.conf Основи розгортання без простоїв
Досягнення розгортання без простоїв залежить від ретельної конфігурації NGINX і надійного планування інфраструктури. Ці елементи працюють разом, щоб забезпечити безперебійне оновлення.
Ось основні фактори успіху:
- Контроль процесу та перевірка конфігурації: Скористайтеся всіма перевагами архітектури NGINX, дотримуючись протоколів ретельного тестування.
- Стабільність інфраструктури: Підтримуйте постійну продуктивність і надійний захист протягом усього процесу розгортання.
Докладніше про перевірку працездатності та кроки відкату див Тестування та перевірка розділ.
SerionionПлатформа підтримує ці зусилля надійною стабільністю та безпекою. Його глобальні центри обробки даних підтримуйте стабільну продуктивність під час оновлень, а вбудований захист від DDoS гарантує безпеку.
Почніть з малого, використовуючи перемикачі функцій на некритичних службах. Поступово збільшуйте масштаби, зберігаючи регулярне тестування, ретельний моніторинг і чіткі плани відкату в центрі вашої стратегії.
Пов’язані публікації в блозі
- Освоєння конфігурацій Nginx для оптимальної продуктивності веб-сервера
- Освоєння конфігурації NGINX: як Serverion забезпечує успіх веб-хостингу B2B
- Перемотування конфігурації NGINX: Serverion відроджує втрачене мистецтво налаштування кешу проксі
- Забута межа конфігурації NGINX: занурення Serverion у мікрокешування FastCGI