Назад | Перейти на главную страницу

Nginx повторит попытку, если бэкэнд временно не работает

У меня есть сервер websocket, работающий за обратным прокси-сервером nginx. Но когда мне иногда нужно перезапустить службу node.js, и клиенты напрямую получают connect() failed (111: Connection refused) while connecting to upstream

Есть ли способ дать nginx подождать 5-10 секунд и повторить попытку, прежде чем разрывать соединение?

 upstream websocket {
        server 127.0.0.1:3000 max_fails=3 fail_timeout=30s;
    }
server {

        server_name .......;

        location / {

            proxy_hide_header 'access-control-allow-origin';
            add_header 'access-control-allow-origin' '$http_origin' always;
            proxy_pass https://websocket;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
        }
        ssl_certificate /etc/letsencrypt/live/....../fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/....../privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        listen 443 ssl; # managed by Certbot
    }