Poniżej prostej konfiguracji nginx dla klastra, a następnie wyłączam serwer 192.168.1.77:3032
.uwsgicluster - brak transmisji na żywo podczas łączenia się z klientem wyższego szczebla
Od czasu do czasu przechwytywam 502 błędy i "brak transmisji na żywo podczas połączenia z klientem wyższego szczebla" w dziennikach, a "serwer unix: ///var/tmp/site.sock backup;" działa i jak sądzę, musi obsługiwać żądanie, ale nginx nie może go znaleźć na żywo. Jaki może być problem?
nginx config:
upstream uwsgicluster {
server 192.168.1.77:3032;
server unix:///var/tmp/site.sock backup;
}
server {
listen 80;
server_name site.com www.site.com;
access_log /var/log/nginx/sire.log;
error_log /var/log/nginx/site-error.log;
location/{
uwsgi_pass uwsgicluster;
include uwsgi_params;
}
}
Jeśli usunąć 192.168.1.77:3032 serwer od góry i ponownie nginx to działa dobrze, ale przy wyłączonym 192.168.1.77:3032 błędów serwera występuje okresowo
Czy twój serwer zdalny jest zawsze dostępny? – RickyA
Co twój budynek jest efektywnie równoważenia obciążenia. A co z konfiguracją serwera (ów) aplikacji z uwsgi an nginx na nich, a następnie stwórz ten serwer loadbalancingu, którego jedynym zadaniem jest przekazywanie żądań http 80 do serwerów aplikacji (nie do zadań typu uwgi). – RickyA
Również ten hotswapping na loadbalancingu wygląda jak idealny sposób na zmniejszenie obciążenia serwera loadbalancingu, gdy zawodzą serwery upsteam. Użyj zdalnej, szybkiej wymiany. – RickyA