Ho app per Facebook con flacone con nginx e uwsgi. Quando si riceve POST da facebook, ha sempre errore:Errore: readv() non riuscito (104: Connessione ripristinata dal peer) durante la lettura a monte
readv() failed (104: Connection reset by peer) while reading upstream
Ma quando accedo mie applicazioni direttamente (con metodo GET), ha funzionato senza intoppi. Cosa ho fatto:
- Limite @ app.route con il metodo
POST
- non funziona. - Aggiungi limite in wsgi:
uwsgi_buffer_size
(nel caso in cui la richiesta da facebook sia grande) euwsgi_harakiri
(nel caso in cui uwsgi fornisca il timeout prima di completare la richiesta) - non funziona.
Ho risolto il problema in django ma non riesco ancora a capire come implementare nel pallone. Qualcuno potrebbe aiutare per favore?
la risposta è un po 'ridicola per me. Devo elaborare tutti i dati dei post, anche se il mio processo non sta facendo nulla. se "niente" non in request.form: pass. Funziona .. Btw, facebook apri l'app con la richiesta POST, quindi dovrei aggiungerla per ogni percorso. Ci deve essere un modo migliore per farlo .. – asofyan
Se ci sono dati su un socket, devi leggerli (non ci sono altre scelte). Nella wiki del flask puoi trovare un middleware per aggirare questo problema comune sull'impostazione proxy: http://flask.pocoo.org/snippets/47/ uWSGI può aiutarti con l'opzione --post-buffering, ma è solo un scorciatoia, niente di magico. – roberto
Grazie per lo snippet @roberto – asofyan