Plüm wrote: > >> -----Ursprüngliche Nachricht----- >> Von: Pavel Stano >> Gesendet: Montag, 3. Dezember 2007 09:53 >> An: dev@httpd.apache.org >> Betreff: apache 2.2 mod_proxy_http disable buffering >> >> >> hello, >> >> it is possible to disable buffering in mod_proxy_http ? >> or something like flush after each received data (i want this > > At least with 2.2.6 (possibly earlier 2.2.x versions) it has autoflushing. > This means once there is no more data available for reading in the response > stream from the backend it flushes what it got so far. So if your php script > on the backend generates its response in blocks with pause times between them > each of them will be send to the client immediately. > > Regards > > Rüdiger
i have 2.2.6, but it dont work, proxy send me data after end of request i have very simple php script (or .cgi, i try it too) <?php echo 'A'; echo 'B'; sleep(5); echo 'C'; ?> php buffering is configured ok, when i connect with telnet to backend server a request a.php, it work as expected it show immedietaly headers and AB and after 5 second it show C and close connection when i connect to reverse proxy and request a.php, 5 second is silent and after that it send me response maybe a bug in mod_proxy_http ? (or not a bug but broken feature :)) here is strace from that proxy ... we write request to backend 22112 17:06:47.916530 writev(12, [{"GET /a.php HTTP/1.1\r\n", 21}, {"Host: rtfm.home\r\n", 17}, {"Max-Forwards: 10\r\n", 18}, {"X-Forwarded-For: 127.0.0.1\r\n", 28}, {"X-Forwarded-Host: rtfm.home\r\n", 29}, {"X-Forwarded-Server: rtfm.home\r\n", 31}, {"Connection: Keep-Alive\r\n", 24}, {"\r\n", 2}], 8) = 170 ... we got answer (headers and AB) 22112 17:06:47.920203 read(12, "HTTP/1.1 200 OK\r\nDate: Mon, 03 D"..., 8000) = 156 22112 17:06:47.920418 poll( <unfinished ...> ... here we want send first data to client, but we just wait for data from backend ... after 5 seconds we got C and send everything to client 22112 17:06:52.920176 <... poll resumed> [{fd=12, events=POLLIN, revents=POLLIN}], 1, 60000) = 1 22112 17:06:52.920232 read(12, "1\r\nC\r\n3\r\n \n\n\r\n0\r\n\r\n", 8000) = 19 22112 17:06:52.920315 close(12) = 0 22112 17:06:52.920414 writev(11, [{"HTTP/1.1 200 OK\r\nDate: Mon, 03 D"..., 139}, {"A", 1}, {"B", 1}, {"C", 1}, {" \n\n", 3}], 5) = 145 22112 17:06:52.920561 times({tms_utime=0, tms_stime=0, tms_cutime=0, tms_cstime=0}) = 432369321 22112 17:06:52.920626 shutdown(11, 1 /* send */) = 0 maybe can someone look at the code if it can be fixed with some small patch ? i dont understand yet those buckets and brigades thanks -- Pavel Stano