Mam haproxy działający jako mój moduł równoważenia obciążenia i z interfejsu internetowego statystyk dostarczanego z haproxy mogę wprowadzić serwer sieciowy w tryb konserwacji (i przywrócić go ponownie) - co jest świetne!
Jednak chcę również móc wykonać tę samą akcję z wiersza polecenia (do użycia w niektórych przepływach pracy automatycznego wdrażania). Czy to możliwe, a jeśli tak, to w jaki sposób?
Wielkie dzięki
źródło
socat /var/run/haproxy.stat stdio
każdego poleceniaPrzy
nc
małej szansie, że masz dostęp tylko do netcat ( ), możesz użyć go do interakcji z plikiem gniazda HAProxy w podobny sposóbsocat
.Aby wyłączyć serwer:
Upewnij się, że plik gniazda ma odpowiedni poziom dostępu, aby wykonać powyższe czynności. Głównie coś takiego:
W przeciwnym razie otrzymasz błędy odmowy uprawnień:
Bibliografia
źródło
Prosty sposób to:
1 - Skonfiguruj serwer WWW, aby zwracał kod 503, jeśli istnieje plik o nazwie Maintenance.html (na przykład). Z Apache możesz to zrobić w następujący sposób:
2 - Skonfiguruj backend haproxy, aby sprawdzał adres URL zamiast tylko sprawdzania portu w następujący sposób:
3 - Uruchom ponownie serwer WWW i moduł równoważenia obciążenia.
4 - Przełącz serwer WWW w tryb konserwacji.
5 - Usuń serwer WWW z trybu konserwacji.
źródło
Możesz także tymczasowo „usunąć” stronę kontroli kondycji z jednego serwera, aby obniżyć punkt końcowy, a następnie opublikować aplikację.
źródło
Jeśli masz Debiana, readline nie działa, netcat jest lepszą opcją dla interaktywnych:
Nieinteraktywny:
źródło