how to solved “upstream sent too big header” pada nginx & haproxy

0
730

halo sobat sekolahlinux, kali ini saya coba untuk membahas 2 problem yang kemarin saya alami, semoga bermanfaat buat pembaca. topologinya kurang lebih seperti dibawah

  • nginx (proxy_pass gateway) ===> haproxy (loadbalancer) ===> nginx (web server)

problem pertama jika saya coba akses web login bisa, namun ketika coba login muncul error “502 bad gateway” dan ada error log seperti dibawah pada nginx (proxy_pass gateway), pada problem pertama ini haproxy saya bypass, jadi langsung menuju nginx (web server) tanpa melewati haproxy (loadbalancer)

2016/10/25 12:58:12 [error] 31224#31224: *9 upstream sent too big header while reading response header from upstream, client: 192.168.100.1, server: , request: "POST /login HTTP/1.1", upstream: "http://192.168.1.12:80/login", host: "cms.katalinux.id", referrer: "http://cms.katalinux.id/login"
2016/10/25 12:58:18 [error] 31224#31224: *15 upstream sent too big header while reading response header from upstream, client: 192.168.100.1, server: , request: "POST /login HTTP/1.1", upstream: "http://192.168.1.12:80/login", host: "cms.katalinux.id", referrer: "http://cms.katalinux.id/login"

saya coba tambahkan rule dibawah ini pada nginx.conf di nginx (proxy_pass gateway) untuk solving problem diatas dan berhasil

proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;

proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;

 

problem kedua jika saya coba akses web login bisa, namun ketika coba login muncul error “502 bad gateway” dan tidak ada error log pada nginx (proxy_pass gateway), pada problem kedua ini koneksi dari nginx (proxy_pass gateway) melalui haproxy (loadbalancer) untuk menuju nginx (web server), dari sisi nginx (web server) pun tidak ditemukan log error, maka saya berasumsi bahwa error ini berasal dari haproxy, pada problem ini saya coba tambahkan rule dibawah ini di paramater global di haproxy.cfg pada haproxy (loadbalancer), dan berhasil

tune.maxrewrite 4096
tune.http.maxhdr 202

jangan lupa tambahkan rule ini di nginx.conf pada nginx (web server) untuk mencegah error seperti diatas jika menggunakan php-fpm

fastcgi_buffers 256 16k;
fastcgi_buffer_size 128k;
fastcgi_connect_timeout 3s;
fastcgi_send_timeout 120s;
fastcgi_read_timeout 120s;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;

sekian tutorial kali ini semoga bermanfaat 😀 untuk sobat sekolahlinux