How to fix nginx FastCGI error 'upstream sent too big header while reading response header from upstream'
Problem:
You’re getting 502 Bad gateway
errors in your nginx
+ FastCGI (PHP) setup. You see error messages like
2020/01/28 11:58:19 [error] 9728#9728: *1 upstream sent too big header while reading response header from upstream, client: 2001:16b8:2681:7600:bc28:b49d:3318:e9c4, server: techoverflow.net, request: "GET /category/calculators/ HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "techoverflow.net", referrer: "https://techoverflow.net/?s=calcul"
in your error log.
Solution
You need to increase your FastCGI buffers by adding
fastcgi_buffers 32 256k;
fastcgi_buffer_size 512k;
next to every instance of fastcgi_pass
in your nginx config and then restarting nginx
:
sudo service nginx restart
Note that the values for the buffer sizes listed in this example are just recommendations and might be adjusted up or down depending on your requirements - however, these values tend to work well for modern server hardware (although many administrators tend to use smaller buffers).