Search code examples
google-app-enginenginx-configapp-engine-flexiblegoogle-app-engine-php

502 Bad Gateway error - upstream sent too big header while reading response header from upstream


I'm using wordpress in Google App Engine. When I make a POST API, getting an Error : "upstream sent too big header while reading response header from upstream". which returns 502, Bad Gateway, nginx

The data(JSON) i'm sending in POST API is around 4kb. If the Data is sent below 2kb API returns success.

I tried App Engine Standard and Flexible Environment, but facing the same issue.

As per this link: upstream sent too big header while reading response header from upstream

Modifying the nginx-app.config file with buffers will fix this issue. But it's not working.

In App Engine, the default nginx-app.config looks like.

location / {
    try_files $uri /index.php?q=$uri&$args;
}

location ~ ^/wp-admin {
    try_files $uri $uri/index.php?$args;
}

Not sure where I need to add these proxy buffers.

I tried adding the proxy buffers inside the default locations as shown below, but it didn't help.

location / {
    try_files $uri /index.php?q=$uri&$args;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
}

Kindly help me to fix this issue.


Solution

  • This is expected behavior as the nginx config for App Engine is using the default proxy_buffer_size which is 4K.

    The workaround is to emit HTTP headers that are cumulatively under this limit. There is an open feature request to increase this however it seems it is unlikely to be increased to 128K. If increasing to 128K is the only solution for your use case I suggest creating a request for it with this issue tracker and include the business impact to illustrate the need for the feature.