我从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) 我得到这样的错误:
[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)
我在 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
我有一个连接到 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)
我一直在寻找,但似乎找不到一种方法来限制这个巨大标题的大小。
此问题发生在 Nginx 和 PHP-FPM 提供的纯 PHP 文件上。我在使用 Symfony 开发网站时偶然发现了这个问题,但有问题的内容长度范围是 3702-15965 (我想知道为什么它与普通 PHP 不同)。
到目前为止我尝试过的:
笔记:
任何帮助表示赞赏。谢谢。
我正在尝试按照本指南使用 Passport.js 为我的 Express.js 应用程序实现一个简单的 Google OAuth(只需替换facebook为google)https://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) nginx ×4
header ×2
c# ×1
cakephp ×1
codeigniter ×1
express ×1
fastcgi ×1
fpm ×1
http-headers ×1
nginx-config ×1
node.js ×1
oauth ×1
passport.js ×1
php ×1
session ×1