Home » FAQ » CGI con Python y flush() en Apache 2

CGI con Python y flush() en Apache 2

Para mi sorpresa, un script “correctamente” hecho con python, que procesaba gran cantidad de información, no mandaba su salida en formato HTML hasta que completaba. El usuario debía tener alguna pista visual de qué era lo que estaba haciendo la máquina.

A pesar de usar:

import sys
...
sys.stdout.flush()

… no cambiaba el comportamiento de la página.
Después de googlear un poco, me encuentro con que Apache 2 tiene habilitado por defecto el módulo de compresión (deflate), con lo cual, el sistema espera que termine de renderizar la página, comprime y manda.
Basta con deshabilitar este módulo con:

sudo a2dismod deflate
sudo /etc/init.d/apache2 restart

Con lo que quedó solucionado el problema…

Tus comentarios son importantes

Previous post:

Next post: