Recibo este tipo de errores:
24/05/2014 11:49:06 [error] 8376 # 0: * 54031 upstream envió un encabezado demasiado grande al leer el encabezado de respuesta de upstream, cliente: 107.21.193.210, servidor: aamjanata.com, solicitud: "GET / the- brainwash-chronicles-patrocinado-por-gobierno-gujarat /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-por-gujarat-gogo/,% 20https: /aamjanata.com/the-brainwash-chronicles- patrocinado-por-gobierno-gujarat /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsors-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by- gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-gogo//% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-gogo/ ,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-por-gujarat-government /,% 20https: / aamjanata.com / the-brainwash-chronicles-patrocinado-por-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-government /,% 20https: /aamjanata.com/the- brainwash-chronicles-patrocinado-por-gobierno-gujarat /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-por-gujarat-gogo/,% 20https: /aamjanata.com/the-brainwash-chronicles- patrocinado-por-gobierno-gujarat /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsors-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by- gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-government/,%20https: //aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-gogo /,%20https:/aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-government/,%20https:/aamjanata.com / the-brainwash-chronicles-patrocinado-por-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-by-gujarat-government /,% 20https: /aamjanata.com/the- brainwash-chronicles-patrocinado-por-gobierno-gujarat /,% 20https: /aamjanata.com/the-brainwash-chronicles-spon patrocinado-por-gujarat-gogo/,% 20https: /aamjanata.com/the-brainwash-chronicles- patrocinado por el gobierno de gujarat /,% 20ht
Siempre es lo mismo. Una url repetida una y otra vez con comas separadas. No puedo entender qué está causando esto. ¿Alguien tiene una idea?
Actualización: otro error:
http request count is zero while sending response to client
Aquí está la configuración. Hay otras cosas irrelevantes, pero esta parte fue agregada / editada
fastcgi_cache_path /var/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
# Upstream to abstract backend connection(s) for PHP.
upstream php {
#this should match value of "listen" directive in php-fpm pool
server unix:/var/run/php5-fpm.sock;
}
Y luego en el bloque del servidor: establezca $ skip_cache 0;
# POST requests and urls with a query string should always go to PHP
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
# Don't cache uris containing the following segments
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
set $skip_cache 1;
}
# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri /index.php;
include fastcgi_params;
fastcgi_pass php;
fastcgi_read_timeout 3000;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 60m;
}
location ~ /purge(/.*) {
fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}`
Respuestas:
Agregue lo siguiente a su archivo conf
fuente
fast_cgi_buffers
no ayuda, intente laproxy_buffers
respuesta a continuación por @amd/etc/nginx/nginx.conf
y los valores deben ir dentro de http {...}Si nginx se ejecuta como proxy / proxy inverso
es decir, para usuarios de
ngx_http_proxy_module
Además
fastcgi
, elproxy
módulo también guarda el encabezado de la solicitud en un búfer temporal.Por lo tanto, es posible que también necesite aumentar el
proxy_buffer_size
y elproxy_buffers
deshabilitarlo por completo (lea la documentación de nginx ).Ejemplo de configuración de búfer de proxy
Ejemplo de deshabilitación de su búfer proxy (recomendado para servidores de sondeo largos)
Para más información: documentación del módulo proxy Nginx
fuente
writev() failed (104: Connection reset by peer) while sending to client
¿Es posible que esa configuración de proxy solucione ese error y que vaya al servidor ascendente o al proxy?proxy_buffers 4 ...
? Dado que el valor predeterminado parece ser 8upstream sent too big header while reading response header from upstream
es la forma genérica de nginx de decir "No me gusta lo que estoy viendo"3: Mire los registros de error sobre el mensaje, ¿está transmitiendo con líneas registradas que preceden al mensaje?
PHP message: PHP Notice: Undefined index:
Fragmento de ejemplo de un bucle mi archivo de registro:Puedes ver en la tercera línea desde la parte inferior que el límite del búfer se alcanzó, se rompió y el siguiente hilo escribió sobre él. Nginx luego cerró la conexión y devolvió 502 al cliente.
2: registre todos los encabezados enviados por solicitud, revíselos y asegúrese de que cumplan con los estándares (nginx no permite que nada anterior a 24 horas elimine / caduque una cookie, enviando contenido no válido porque se almacenaron mensajes de error antes de que el contenido contara. ..). La llamada a la función getallheaders generalmente puede ayudar en situaciones de código abstracto php obtener todos los encabezados
Ejemplos incluyen:
y esto:
1: verifique o cree un registro de secuencia de comandos para asegurarse de que su hilo llegue al punto final correcto y no salga antes de la finalización.
fuente
Instrucciones de Plesk
En Plesk 12, tenía nginx ejecutándose como un proxy inverso (que creo que es el predeterminado). Por lo tanto, la respuesta principal actual no funciona, ya que nginx también se ejecuta como proxy.
Fui a
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
.Luego, en la parte inferior de esa página, puede establecer las directivas Adicionales nginx que configuro para ser una combinación de las dos respuestas principales aquí:
fuente
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
entonces no estoy seguro de lo que quiere decir./etc/nginx/conf.d/proxy.conf
y reinicié nginx, funciona bien, ¡gracias!Si está utilizando el marco de Symfony: antes de jugar con la configuración de Nginx, primero intente deshabilitar ChromePHP.
1 - Abra la aplicación / config / config_dev.yml
2 - Comenta estas líneas:
ChromePHP incluye la información de depuración codificada en json en el encabezado X-ChromePhp-Data, que es demasiado grande para la configuración predeterminada de nginx con fastcgi.
Fuente: https://github.com/symfony/symfony/issues/8413#issuecomment-20412848
fuente
Terminamos dándonos cuenta de que nuestro único servidor que estaba experimentando esto había roto la configuración de fpm, lo que resultó en errores / advertencias / avisos de php que normalmente se registraban en el disco se enviaban a través del zócalo FCGI. Parece que hay un error de análisis cuando parte del encabezado se divide entre los fragmentos de búfer.
Entonces configurando
php_admin_value[error_log]
algo realmente escribible y reiniciar php-fpm fue suficiente para solucionar el problema.Podríamos reproducir el problema con un script más pequeño:
Elevar los búferes hizo que los 502 fueran más difíciles de alcanzar pero no imposibles, por ejemplo, nativos:
fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
:Entonces, creo que la respuesta correcta es: arregle su configuración de fpm para que registre los errores en el disco.
fuente
Esta sigue siendo la pregunta SO más alta en Google cuando se busca este error, así que vamos a solucionarlo.
Al recibir este error y no querer profundizar en la configuración de NGINX de inmediato, es posible que desee verificar sus salidas a la consola de depuración. En mi caso, estaba enviando un montón de texto a la consola FirePHP / Chromelogger, y como todo esto se envía como un encabezado, estaba causando el desbordamiento.
Es posible que no sea necesario cambiar la configuración del servidor web si este error se debe al simple envío de cantidades increíbles de mensajes de registro.
fuente
No estoy seguro de que el problema esté relacionado con el encabezado que envía php. Asegúrese de que el almacenamiento en búfer esté habilitado. La manera simple es crear un archivo proxy.conf:
Y un archivo fascgi.conf:
A continuación, debe llamarlos en su servidor de configuración predeterminado de esta manera:
fuente