Konfiguracja NGINX dla DevOps: sztuczka Serverion na wdrożenia bez przestojów
Wdrożenia bez przestojów oznacza aktualizację aplikacji bez przerywania usługi – konieczność dla firm, w których nawet krótka przerwa może kosztować miliony. NGINX umożliwia to dzięki swojemu modelowi procesu master-worker i inteligentnym sygnałom, takim jak USR2 (rozpocząć nowe procesy) i HUP (ponowne załadowanie konfiguracji). Oto klucz:
- Jak to działa:NGINX przenosi ruch ze starych serwerów roboczych do nowszych bez zrywania połączeń.
- Kluczowe kroki:Użyj sygnałów (
USR2,HUPitp.), skonfigurujnginx.confprawidłowo i sprawdź poprawność zmian przed ponownym załadowaniem. - Techniki:Połącz NGINX z metodami takimi jak wdrożenia blue-green lub Docker, aby zapewnić bezproblemowe aktualizacje.
- Kontrole stanu zdrowia: Upewnij się, że tylko sprawne serwery obsługują ruch, korzystając z pasywnych lub aktywnych kontroli kondycji NGINX.
Dzięki odpowiedniej konfiguracji możesz zadbać o płynne działanie usług podczas aktualizacji, zabezpieczyć przychody i utrzymać zaufanie klientów.
Podstawy NGINX dla wdrożeń bez przestojów

Wyjaśnienie wdrożenia bez przestojów
NGINX używa modelu master-worker do obsługi aktualizacji bez przerywania usługi. Proces master nadzoruje konfigurację i kontrolę, podczas gdy procesy worker zarządzają połączeniami klientów. Ta konfiguracja umożliwia płynne przenoszenie ruchu ze starych pracowników na nowych podczas aktualizacji, zapewniając nieprzerwaną usługę.
Zarządzanie połączeniami NGINX
NGINX wykorzystuje określone sygnały do sterowania procesami podczas aktualizacji lub zmian konfiguracji:
- USR2:Uruchamia nowe procesy główne i robocze.
- WCIĄGARKA:Zatrzymuje stare procesy robocze w sposób prawidłowy.
- HUP: Ponownie ładuje konfigurację i zastępuje pracowników.
- ZREZYGNOWAĆ:Wyłącza maszynę główną i pracowników z gracją.
Podczas ponownego ładowania NGINX przenosi stary identyfikator procesu głównego do /run/nginx.pid.oldbin, zapisuje nowy identyfikator procesu głównego do /uruchom/nginx.pidi pozwala starszym pracownikom na dokończenie aktywnych żądań przed wyłączeniem.
Nowoczesne wdrożenia aplikacji: Jak używać NGINX i JFrog do…

Konfigurowanie NGINX do pracy ciągłej
Aby utrzymać aktywność połączeń podczas przeładowywania, skorzystaj z architektury master-worker serwera NGINX z następującymi ustawieniami.
Kluczowe kroki konfiguracji NGINX
Włączyć coś wielokrotne_akceptowanie aby umożliwić pracownikom obsługę wielu połączeń na wydarzenie. Oto przykładowa konfiguracja dla nginx.conf:
work_processes auto; pid /run/nginx.pid; events { work_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 Połączenie ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } Ponowne ładowanie konfiguracji bez przestoju
- Aby zastosować zmiany, ponownie załaduj bieżących pracowników:
nginx -s przeładuj - Sprawdź zaktualizowany identyfikator procesu głównego:
kot /run/nginx.pid - Wykonaj uaktualnienie binarne bez zatrzymywania ruchu:
kill -USR2 $(cat /run/nginx.pid) kill -WINCH $(cat /run/nginx.pid.oldbin)
Dzięki tym krokom ruch będzie mógł płynnie przechodzić między starymi i nowymi pracownikami, co zagwarantuje nieprzerwaną usługę.
sbb-itb-59e1987
Metody wdrażania z NGINX
Za pomocą NGINX można realizować wdrożenia bez przestojów, wykorzystując takie techniki, jak konfiguracje blue-green lub podejścia oparte na kontenerach.
Konfiguracja wdrożenia niebiesko-zielonego
Dzięki NGINX możesz zarządzać ruchem między dwoma środowiskami – powszechnie określanymi jako niebieski i zielony. Te środowiska są identyczne, ale tylko jedno jest aktywne w danym momencie. Oto jak to działa:
- Wdróż zaktualizowaną wersję w nieaktywnym środowisku (np. zielonym).
- Przeprowadź kontrolę stanu, aby upewnić się, że nowa wersja działa prawidłowo.
- Po weryfikacji zaktualizuj Konfiguracja NGINX aby skierować ruch do zaktualizowanego środowiska.
- Załaduj ponownie konfigurację za pomocą
HUPsygnał, aby uniknąć zerwania aktywnych połączeń.
Metoda ta gwarantuje płynne przejście bez przerw w świadczeniu usług.
Integracja Docker i NGINX
Używanie Dockera z NGINX usprawnia wdrożenia, utrzymując spójne środowiska zarówno dla warstwy aplikacji, jak i proxy. Oto, jak można osiągnąć aktualizacje bez przestojów:
- Uruchom nowy kontener obok bieżącego aktywnego.
- Przeprowadź kontrolę stanu, aby potwierdzić, czy nowy kontener jest gotowy.
- Zmodyfikuj konfigurację upstream NGINX, aby uwzględnić nowy kontener.
- Ponownie załaduj konfigurację za pomocą
HUPsygnał, pozwalający starszym pracownikom na dokończenie przetwarzania przed wyjściem.
Takie podejście gwarantuje nieprzerwaną usługę podczas aktualizacji aplikacji.
Testowanie i weryfikacja
Konfigurowanie kontroli kondycji
Kontrole kondycji NGINX pomagają zapewnić, że tylko funkcjonalne serwery obsługują ruch. Kontrole te działają obok konfiguracji upstream i routingu blue-green. NGINX oferuje dwa rodzaje kontroli kondycji: pasywny (dostępne w NGINX Open Source) i aktywny (wyłącznie w NGINX Plus).
W przypadku pasywnych kontroli stanu w NGINX Open Source skonfiguruj blok nadrzędny w następujący sposób:
zaplecze nadrzędne { serwer backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; serwer backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zaplecze strefy 64k; } Jeśli używasz NGINX Plus, możesz włączyć aktywne kontrole kondycji, dodając kontrola_stanu dyrektywa wraz z mecz blok:
lokalizacja / { proxy_pass http://backend; interwał kontroli stanu=5s nieudane=3 przebiegi=2 obowiązkowe trwałe; dopasowanie kontroli stanu { status 200; nagłówek Content-Type = application/json; treść ~ '"status":"UP"'; } } Przed ponownym załadowaniem NGINX należy sprawdzić poprawność tych konfiguracji.
Sprawdź konfigurację
Zawsze testuj poprawność konfiguracji NGINX przed ponownym załadowaniem. Użyj następującego polecenia:
nginx -t -c /ścieżka/do/twojego/pliku/nginx.conf Podstawy wdrażania bez przestojów
Osiągnięcie wdrożeń bez przestojów zależy od starannej konfiguracji NGINX i solidnego planowania infrastruktury. Elementy te współpracują ze sobą, aby zapewnić, że aktualizacje będą się odbywać bez zakłóceń.
Oto kluczowe czynniki sukcesu:
- Kontrola procesu i walidacja konfiguracji: Wykorzystaj w pełni architekturę NGINX, jednocześnie przestrzegając dokładnych protokołów testowych.
- Stabilność infrastruktury:Utrzymuj spójną wydajność i dbaj o bezpieczeństwo w całym procesie wdrażania.
Aby uzyskać szczegółowe informacje na temat kontroli stanu zdrowia i kroków wycofywania, zapoznaj się z dokumentem Testowanie i weryfikacja sekcja.
ServerionPlatforma wspiera te wysiłki niezawodną stabilnością i bezpieczeństwem. Jej globalne centra danych Utrzymuj stałą wydajność podczas aktualizacji, a wbudowana ochrona DDoS gwarantuje nienaruszone bezpieczeństwo.
Zacznij od małych rzeczy, używając przełączników funkcji w usługach niekrytycznych. Stopniowo zwiększaj skalę, utrzymując regularne testowanie, ścisłe monitorowanie i jasne plany wycofania w centrum swojej strategii.
Powiązane wpisy na blogu
- Opanowanie konfiguracji Nginx w celu uzyskania optymalnej wydajności serwera WWW
- Opanowanie konfiguracji NGINX: jak Serverion odblokowuje sukces hostingu internetowego B2B
- Powtórka konfiguracji NGINX: Serverion przywraca zapomnianą sztukę dostrajania pamięci podręcznej proxy
- Zapomniana granica konfiguracji NGINX: zanurzenie się Serverion w mikrocaching FastCGI