2014-12-02 22 views
5

Ho problemi con l'uso di HTTP POST quando cloudflare è abilitato. Continua a restituire 524 timeout.Timeout HTTP POST 524 Cloudflare con node.js + express

Ma quando ho disattivato cloudflare, il POST HTTP funziona correttamente.

Qualche idea di cosa potrebbe aver causato questo?

UPDATE

Sto usando AJAX POST, fa questo ha qualcosa a che fare con l'Ajax?

Grazie.

+1

Hai mai trovare una soluzione a questo? Sto avendo un problema abbastanza simile –

+0

Cosa fare in questo caso, hai trovato qualche soluzione? –

risposta

0

Cause generali per un CloudFlare 524 error.

Il supporto deve essere in grado di fornire una risoluzione dei problemi più dettagliata.

+0

Sì, ma non sto facendo un processo lungo, è solo una semplice casella di iscrizione. E come ho detto prima, il metodo POST che utilizza AJAX funziona bene se ho disabilitato cloudflare – hrusli

+0

Quanto dura il processo? se è superiore a 30/60 secondi, devi bypassare la rete cloudflare con un sottodominio. Al momento Cloudflare non supporta processi che richiedono più di 30/60 secondi. –

+0

In base alla nostra esperienza, cloudflare si interromperà se è inferiore a 30/60 sec ... – Pencilcheck

0

L'utilità della console "netstat" mostra che alcune connessioni da CloudFlare sono nello stato CLOSE_WAIT. Indicare che il server si trova semplicemente senza connessioni correttamente chiuse. Guardando al traffico TCP del mio server web con Message Analyzer, ho trovato diverse connessioni che sono state stabilite e la richiesta HTTP è stata inviata ma che non è stata mai elaborata dal mio server.

Quindi otteniamo una risposta: il numero di connessioni stabilite contemporaneamente supera in numero le chiamate Accept() disponibili. Quindi lo stack TCP si connette e aspetta mentre l'applicazione gestirà la sua connessione. A seconda della situazione, questo non può mai accadere, quindi il client lascia la connessione dopo un timeout di 30 secondi senza ricevere alcuna risposta.

Per risolvere questo problema, è necessario aumentare il numero di possibili in sospeso accetta. Questo parametro può essere denominato "Numero massimo di connessioni simultanee" o qualcosa di simile. Controlla la documentazione del tuo server web \ chiedi al supporto di scoprirlo.

Inoltre, come esperimento, è possibile forzare il server a rispondere con l'intestazione "Connessione: chiudi" per ogni richiesta. Ciò potrebbe impedire il raggiungimento del problema del limite di connessioni attive perché CloudFlare le mantiene in vita troppo a lungo.

Inoltre, più richieste simultanee si fanno, maggiore è la probabilità di avere problemi. È possibile provare a impostare un timeout piccolo lato server Web per le connessioni inattive.

P.S .: Illustrazione di CloudFlare numero connessioni dopo un client caricata una pagina: (http://i.imgur.com/IgwGLCf.png)

+0

Il numero di richieste accettate/di connessione in sospeso è il * backlog. * Non ha nulla a che fare con il numero di connessioni simultanee e nessuna di esse ha qualcosa a che fare con CLOSE_WAIT, che è solo una perdita di socket. – EJP