6

I have php 5.5 (fpm) and nginx 1.10 installed (gzip configured to 1). Running on ubuntu.

When I am "echoing" a large output (over 2 mb), it stops abruptly at around 520 kb.

But same program when I run on php-cli, it has no problem "echoing" the whole thing onto the terminal.

Also downloading mysql dumps through adminer gets stopped in the half way. I mean incomplete files get downloaded (if the correct total output is bigger in couple of MBs).

How to fix this?

There is nothing wrong with my program. Even a simple long enough for loop spurting out echo "hello world" gets stopped at specific byte limit.

I am not sure if this issue is caused from nginx side or php side.

hakacadera
  • 61
  • 2
  • If it is due to nginx, you can find out if you enable debugging log. Ref: http://nginx.org/en/docs/debugging_log.html . If you can't decode the debug log, please post it here for one such failed request. – Pothi Kalimuthu Oct 20 '16 at 11:54
  • Unclear from your description: Are you echoing the large output into a browser? Are you downloading the mysql dumps through a browser? If the answer to both of these is "yes", then look for something between the service and your browser, like a corporate proxy that limits downloads larger than (probably) 512 KB (or half a MB). – Larry Silverman Oct 25 '16 at 18:00
  • 1
    There is no proxy. I am echoing directly into a browser. imagine a for loop and echo in it for very long number of times.. and php max script execution time is set to 0 (know thats not the bottleneck). – hakacadera Oct 25 '16 at 18:31
  • Try calling `flush()` and optionally `ob_flush()` (if `ob_start` was previously used) after every output. The way it is now, the output could bloat the output buffers. – Zdenek Jun 18 '18 at 19:41

1 Answers1

1

Try disabling buffering:

fastcgi_buffering off;

It's on by default.

This will give you a bit more control from within PHP, but be aware that flushing operations that didn't block previously may now block. It will also overcome any buffering issues Nginx may be encountering--I'd put my money on that being the issue. Nginx's buffers are efficient but fickle.

Zenexer
  • 441
  • 8
  • 19