相关疑难解决方法(0)

上游太大了 - nginx + codeigniter

我从Nginx得到这个错误,但似乎无法搞清楚!我正在使用codeigniter并使用数据库进行会话.所以我想知道标题是如何变得太大.反正有没有检查标题是什么?或者可能看到我能做些什么来修复这个错误?

如果您需要我提出任何conf文件或其他内容,请告诉我,我会根据您的要求进行更新

2012/12/15 11:51:39 [error] 2007#0: *5778 upstream sent too big header while reading response header from upstream, client: 24.63.77.149, server: jdobres.xxxx.com, request: "POST /main/login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "jdobres.xxxxx.com", referrer: "http://jdobres.xxxx.com/"
Run Code Online (Sandbox Code Playgroud)

UPDATE

我在conf中添加了以下内容:

proxy_buffer_size   512k;
proxy_buffers   4 512k;
proxy_busy_buffers_size   512k;
Run Code Online (Sandbox Code Playgroud)

现在我仍然得到以下内容:

2012/12/16 12:40:27 [error] 31235#0: *929 upstream sent too big header while reading response header from upstream, client: 24.63.77.149, server: jdobres.xxxx.com, request: "POST /main/login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "jdobres.xxxx.com", referrer: "http://jdobres.xxxx.com/"
Run Code Online (Sandbox Code Playgroud)

session codeigniter header nginx

57
推荐指数
4
解决办法
4万
查看次数

Nginx上游在从上游读取响应头时发送了太大的头

我得到这样的错误:

[error] 27544#0: *47335682 upstream sent too big header while reading response 
 header from upstream, client: 88.88.88.88, server: example..com,
 request: "POST /tool/ HTTP/1.1", upstream: "http://88.88.88.88:7080/tool/",
 host: "example.com"
Run Code Online (Sandbox Code Playgroud)

关于这个问题,可以从nginx conf文件增加缓冲区大小,如下所示:上游从上游读取响应头时发送过大的头

http {
  proxy_buffer_size   128k;
  proxy_buffers   4 256k;
  proxy_busy_buffers_size   256k;
}

location
      fastcgi_buffers 16 16k; 
      fastcgi_buffer_size 32k;
Run Code Online (Sandbox Code Playgroud)

(为了将来参考,fastcgi_buffer_size和fastcgi_buffers的默认大小是4k或8k,关于平台)

此文本显示在用户的浏览器中: Nginx 502 Bad Gateway

我打算暂时增加缓冲区大小.然后我可以在缓冲区太大时记录.是否有可能找到对上游来说太大的标题?apache_response_headers()和headers_list()没有给我所有的响应头.它只给了我expires,cache-control和pragma头文件.

更改proxy_buffer_size会导致性能问题吗?

(nginx版本:nginx/1.6.0,php 5.4.42,xcache 3.2)

cakephp nginx http-headers

10
推荐指数
1
解决办法
1万
查看次数

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

我在 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)

请帮助我解决这个问题。

google-app-engine google-app-engine-php app-engine-flexible nginx-config

8
推荐指数
2
解决办法
2万
查看次数

身份验证限制扩展标头大小

我有一个连接到 Identity server 4 身份服务器的 Asp .net mvc 应用程序。当我发布该应用程序时,我对这个错误感到困惑。

从上游读取响应标头时上游发送了太大的标头

我跟踪到的上游在从上游读取响应标头时发送了太大的标头

我无法更改配置,系统管理员已声明我们需要缩小标头。

在此输入图像描述

看完之后我不得不承认这些标题有点广泛。

应用程序中的Startup.cs

services.AddAuthentication(options =>
        {
            options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
        })
        .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options =>
            {

                options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.Authority = Configuration["ServiceSettings:IdentityServerEndpoint"];
                options.RequireHttpsMetadata = true;
                options.ClientId = Configuration["ServiceSettings:ClientId"];
                options.ClientSecret = Configuration["ServiceSettings:secret"];
                options.Scope.Add("testapi");
                options.ResponseType = "code id_token";
                options.SaveTokens = true;
                options.GetClaimsFromUserInfoEndpoint = true;
                options.Events = new OpenIdConnectEvents()
                {
                    OnRemoteFailure = ctx =>
                    {
                        _logger.LogCritical($"Remote Faliure: {ctx.Failure}");
                        ctx.HandleResponse();
                        return Task.FromResult(0);
                    }
                };
            });
Run Code Online (Sandbox Code Playgroud)

我一直在寻找,但似乎找不到一种方法来限制这个巨大标题的大小。

c# header asp.net-core-mvc identityserver4

5
推荐指数
1
解决办法
3771
查看次数

当内容长度在 4013-8092 个字符之间时,Google Cloud Run 网站会超时。到底是怎么回事?

此问题发生在 Nginx 和 PHP-FPM 提供的纯 PHP 文件上。我在使用 Symfony 开发网站时偶然发现了这个问题,但有问题的内容长度范围是 3702-15965 (我想知道为什么它与普通 PHP 不同)。

到目前为止我尝试过的:

  • 超时持续时间为 15 秒,但我尝试将其增加到 300 秒,但仍然超时。所以我猜这是无限循环的事情。
  • 它看起来与资源无关,因为即使内容长度为 500 万个字符它也能工作。
  • 使用不同的字符创建了各种测试,看看是否可以更改有问题的内容长度范围。答案是否定的,我所有的测试范围都保持不变。
  • 我尝试过禁用 gzip。它没有改变长度范围,但响应发生了变化。Gzip 启用响应:“上游请求超时”| Gzip 禁用响应:完全空白

笔记:

  • 我的本地主机上不存在此问题。
  • 很少能正常打开页面。我无法一致地重现这一点。
  • 除了“请求超时”行之外,Nginx、PHP 或 GCR 日志中没有任何错误。

任何帮助表示赞赏。谢谢。

php fastcgi nginx fpm google-cloud-run

5
推荐指数
1
解决办法
2062
查看次数

Passport.js 在 nginx 上表达 google oauth 502 错误网关

我正在尝试按照本指南使用 Passport.js 为我的 Express.js 应用程序实现一个简单的 Google OAuth(只需替换facebookgooglehttps://github.com/passport/express-4.x-facebook-example/blob/master /服务器.js

当我在本地尝试时,一切似乎运行良好。当我将其部署到 Ubuntu 生产服务器时,我502 Bad Gateway在从 Google 到端点的重定向回调期间收到错误/login/google/return

app.get('/login/google/return', 
  passport.authenticate('google', { failureRedirect: '/login' }),
  function(req, res) {
    res.redirect('/');
  });
Run Code Online (Sandbox Code Playgroud)

如果我注释掉该行passport.authenticate('google', {..}),那么错误就会消失。检查 nginx 错误日志后,我看到此错误

upstream sent too big header while reading response header from upstream
Run Code Online (Sandbox Code Playgroud)

这是 nginx 的服务器配置块:

location /auth/ {
   proxy_pass http://0.0.0.0:3000/;
}
Run Code Online (Sandbox Code Playgroud)

这意味着我将通过转到 登录谷歌https://example.com/auth/login/google,被重定向到https://example.com/auth/login/google/return?code=4/adasfdafdsfd#,然后发生 502 错误。

我尝试在我的 OS X 开发机器上设置类似的 nginx 环境,但那里没有出现问题。

我还尝试将以下内容添加到 nginx 块配置中,但这似乎也没有帮助

proxy_buffers 8 …
Run Code Online (Sandbox Code Playgroud)

oauth nginx node.js express passport.js

2
推荐指数
1
解决办法
4227
查看次数