Onafhankelijke vergelijking · geen betaalde rankings
Home / Blog / Technisch / Proxy time-out: voorkom dat WebSockets na één minuut wegvallen

Proxy time-out: voorkom dat WebSockets na één minuut wegvallen

Een chat, live dashboard of online game waarbij de verbinding elke 60 seconden wordt verbroken, wijst vaak op een slecht afgestemde proxy en niet op uw WebSocket-code.

Redactie Hébergeurs.eu 4 min Bijgewerkt 19 jul. 2026

Uw WebSocket-applicatie wordt lokaal uitgevoerd. Bij het staging achter nginx lijkt alles in orde – tot op de minuut: de verbinding wordt verbroken, de client probeert opnieuw verbinding te maken, de gebruiker ziet een ‘niet-verbonden’ flits. De applicatielogboeken laten geen uitzonderingen zien. Alleen de proxy besloot dat de sessie inactief was.

Dit patroon (exact 60 seconden) is een van de snelste diagnoses in webhosting. Voordat u de onMessage-handler optimaliseert, moet u de storing timen: het aantal seconden geeft vaak de boosdoener aan.

WebSocket achter een omgekeerde proxy

De browser verzendt een HTTP-verzoek met Upgrade: websocket. De proxy moet de headers 'Upgrade' en 'Connection' verzenden, geen klassieke HTTP-time-out toepassen op een langdurige verbinding, en bidirectionele frames doorlaten zonder voor onbepaalde tijd te bufferen.

OnderdeelKritische aanpassingVeel voorkomende fout
nginxproxy_read_timeoutStandaard jaren 60
HAProxytunneltime-outklanttime-out te kort
AWS-ALBtime-out voor inactiviteit60 s minimaal configureerbaar
WolkenvlamWebSocketsONtime-outrand + noodzaak voor ping

WebSocket is geen “lang” HTTP-verzoek; het is een apart protocol na de upgrade. De proxy moet dit als zodanig behandelen.

Typische nginx-configuratie


kaart $http_upgrade $connection_upgrade {

    standaardupgrade;

    '' dichtbij;

}



locatie /ws/ {

    proxy_pass http://backend;

    proxy_http_versie 1.1;

    proxy_set_header Upgrade $http_upgrade;

    proxy_set_header Verbinding $connection_upgrade;

    proxy_read_timeout 3600s;

    proxy_send_timeout 3600s;

}

Pas '3600s' aan uw situatie aan - afgestemd op de hartslag van de toepassing, niet op oneindig. Controleer ook of de backend lange verbindingen accepteert en dat de tussenliggende firewall geen eigen inactieve limiet oplegt.

Applicatiehartslag: verplicht in productie

Zelfs bij hoge time-outs kunt u elke 30 tot 45 seconden een WebSocket-ping (of een lichtgewicht JSON-bericht) verzenden als een schakel in de keten na 60 of 100 seconden wordt afgebroken. Aan de kant van Node (ws), Python (websockets) of Phoenix-kanalen: activeer native ping/pong of implementeer het expliciet.

Opzettelijk testen gedurende één minuut inactiviteit van de gebruiker, niet alleen bij continu verkeer. Een sessie die tijdens een videogesprek open blijft zonder sollicitatiebericht, legt al snel de grenzen van de proxy of CDN bloot.

CDN en beheerde hosting

Als de WebSocket via Cloudflare of een WAF passeert, schakel dan WebSockets in het dashboard in, controleer de duur of berichtlimieten per abonnement en blijf vaker pingen dan de time-outgrens. Bij directe oorsprong zonder CDN wordt het probleem vaak gereduceerd tot nginx of HAProxy.

Lees op PaaS (Clever Cloud, Railway, Heroku) de documentatie over lange verbindingen; sommige routers leggen harde caps op. Vergelijk geschikte aanbiedingen via onze overzicht als realtime verbindingen centraal staan ​​in uw product.

Bovenaan: de bug zit niet in je onMessage-handler

Beslis en ga vooruit zonder blinde vlek

Bepaal eerst het exacte ontkoppelingsinterval en correleer dit met de gedocumenteerde time-outs van elke link (nginx, load balancer, CDN, PaaS). Corrigeer vervolgens de Upgrade-headers en proxy-time-outs en voeg vervolgens een frequentere ping/pong toe dan de kortste time-out. Test vanaf productie met één minuut vrijwillige inactiviteit – localhost verbergt vaak de middelste laag. Documenteer de uiteindelijke configuratie in het implementatierunbook om te voorkomen dat een nginx-herimplementatie de standaardwaarden opnieuw instelt.

Veelgestelde vragen

Waarom precies 60 seconden?

standaard nginx proxy_read_timeout en huidige waarde op load balancers. Een vast interval verwijst naar de transportlaag, niet naar een willekeurige toepassingsuitzondering.

Welke nginx-richtlijnen voor WebSocket?

HTTP/1.1, upgrade, verbindingsupgrade, hoge proxy_read/send_timeout, kaart $http_upgrade voor gemengde HTTP- en WebSocket-verbindingen.

Ondersteunt Cloudflare langlopende WebSockets?

Ja op compatibele abonnementen; een applicatieping blijft aanbevolen voor stille of zeer lange sessies.

Moeten we de time-out onbeperkt verlengen?

Nee: combineer een time-out die is afgestemd op de hartslag en een regelmatige ping vaker dan de strengste schakel in de keten.


Als uw WebSocket op dat moment wegvalt, debug dan niet het bericht; debug wie de verbinding verbreekt en na precies hoeveel seconden.

Vergelijk Europese providers

Filter op compliance, locatie en gebruikssituatie — open daarna de fiches om het echte bereik te controleren.

Blader door het overzicht
Blog

Gerelateerde lectuur

Alle artikelen →