502 错误网关错误 - 从上游读取响应标头时上游发送了太大的标头

Dev*_*Dev 8 google-app-engine google-app-engine-php app-engine-flexible nginx-config

我在 Google App Engine 中使用 WordPress。当我创建 POST API 时,出现错误:“在从上游读取响应标头时,上游发送了太大的标头”。返回 502、错误网关、nginx

我在 POST API 中发送的数据(JSON)大约为 4kb。如果发送的数据低于 2kb,API 将返回成功。

我尝试了 App Engine 标准版和灵活环境,但遇到了同样的问题。

根据此链接: 上游在从上游读取响应标头时发送了太大的标头

使用缓冲区修改 nginx-app.config 文件将解决此问题。但这不起作用。

在 App Engine 中,默认的 nginx-app.config 如下所示。

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

location ~ ^/wp-admin {
    try_files $uri $uri/index.php?$args;
}
Run Code Online (Sandbox Code Playgroud)

不确定我需要在哪里添加这些代理缓冲区。

我尝试在默认位置中添加代理缓冲区,如下所示,但没有帮助。

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;
}
Run Code Online (Sandbox Code Playgroud)

请帮助我解决这个问题。

Con*_*tov 5

WordPress 反向代理

将其放在服务器组下(它是一个server属性):

server {
        listen 443 ssl http2;

        server_name wordpress.site.com;
 
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        proxy_buffer_size   128k;
        proxy_buffers   4 256k;
        proxy_busy_buffers_size   256k;     

       location ~ \.php$ {     
            ... 
             }
 ...
}
Run Code Online (Sandbox Code Playgroud)

并且问题将会得到解决!


Jul*_*ang 2

这是预期行为,因为 App Engine 的 nginx 配置使用默认的 proxy_buffer_size(4K)。

解决方法是发出累计低于此限制的 HTTP 标头。有一个开放的功能请求来增加这一点,但似乎不太可能增加到 128K。如果增加到 128K 是您的用例的唯一解决方案,我建议使用此问题跟踪器创建一个请求,并包括业务影响以说明对该功能的需求。