Mematikan "Proxy Buffering" pada nginx

reverse proxy

Jika menggunakan nginx sebagai reverse proxy, secara garis besar ada dua kemungkinan bagaimana data ditangani oleh nginx.

1. proxy_buffering on;

Menerima data dari origin server dan menampung hingga penuh (ditampung di memory / sebagai file temporary), setelah penuh baru kemudian dikirimkan ke pengguna.

2. proxy_buffering off;

Menerima data per-chunk dan seketika itu juga dikirimkan ke pengguna. Besaran chunk ditentukan oleh direktif proxy_buffer_size, standarnya adalah 4K / 8K.

Dua konfigurasi tersebut mungkin tidak akan terasa perbedaannya jika respon masih di bawah proxy_buffer_size

Menurut saya lebih baik mematikan proxy buffering (proxy_buffering off;) guna mengurangi TTFB (time to first byte). Sehingga web lebih responsif.

Tanpa menggunakan direktif, proxy buffering juga bisa dimatikan dengan mengirimkan header `X-Accel-Buffering: no` dari sisi aplikasi (di origin server). Perlu diingat bahwa header X-Accel ini bukanlah header standar, melainkan propietary nginx.

Buffering can also be enabled or disabled by passing “yes” or “no” in the “X-Accel-Buffering” response header field. This capability can be disabled using the proxy_ignore_headers directive.