Je reçois ce genre d'erreurs:
2014/05/24 11:49:06 [erreur] 8376 # 0: * 54031 en amont envoyé un en-tête trop grand lors de la lecture de l'en-tête de réponse en amont, client: 107.21.193.210, serveur: aamjanata.com, demande: "GET / the- brainwash-chronicles-parrainé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- sponsorisé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by- gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government/ ,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: / aamjanata.com / the-brainwash-chronicles-sponsorisé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the- brainwash-chronicles-parrainé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- sponsorisé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by- gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government/,%20https: //aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,%20https:/aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government/,%20https:/aamjanata.com / the-brainwash-chronicles-sponsorisé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the- brainwash-chronicles-parrainé par le gujarat-gouvernement /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- parrainé par le gouvernement du gujarat /,% 20ht
C'est toujours pareil. Une URL s'est répétée encore et encore avec une virgule de séparation. Impossible de comprendre ce qui cause cela. Quelqu'un a une idée?
Mise à jour: une autre erreur:
http request count is zero while sending response to client
Voici la config. Il y a d'autres choses non pertinentes, mais cette partie a été ajoutée / modifiée
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;
}
Et puis dans le bloc serveur: set $ 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";
}`
Réponses:
Ajoutez ce qui suit à votre fichier conf
la source
fast_cgi_buffers
cela ne vous aide pas, essayez laproxy_buffers
réponse ci-dessous par @amd/etc/nginx/nginx.conf
et que les valeurs doivent aller à l'intérieur de http {...}Si nginx fonctionne en tant que proxy / proxy inverse
c'est-à-dire pour les utilisateurs de
ngx_http_proxy_module
En plus
fastcgi
, leproxy
module enregistre également l'en-tête de demande dans un tampon temporaire.Vous devrez donc peut-être également augmenter le
proxy_buffer_size
et leproxy_buffers
, ou le désactiver totalement (veuillez lire la documentation nginx ).Exemple de configuration de mise en mémoire tampon du proxy
Exemple de désactivation de votre tampon proxy (recommandé pour les serveurs à longue interrogation)
Pour plus d'informations: documentation du module proxy Nginx
la source
writev() failed (104: Connection reset by peer) while sending to client
Ces paramètres de proxy pourraient-ils corriger cette erreur et iraient-ils sur le serveur en amont ou le proxy?proxy_buffers 4 ...
? Puisque la valeur par défaut semble être 8upstream sent too big header while reading response header from upstream
est la façon générique de nginx de dire "je n'aime pas ce que je vois"3: Regardez les journaux d'erreurs au-dessus du message, est-il en streaming avec des lignes enregistrées précédant le message?
PHP message: PHP Notice: Undefined index:
Exemple d'extrait d'une boucle mon fichier journal:vous pouvez voir dans la 3ème ligne du bas que la limite de tampon a été atteinte, cassée et le thread suivant a écrit dessus. Nginx a ensuite fermé la connexion et renvoyé 502 au client.
2: enregistrez tous les en-têtes envoyés par demande, examinez-les et assurez-vous qu'ils sont conformes aux normes (nginx n'autorise rien de plus de 24 heures à supprimer / expirer un cookie, en envoyant une longueur de contenu non valide car les messages d'erreur ont été mis en mémoire tampon avant que le contenu ne soit compté. ..). L'appel de fonction getallheaders peut généralement aider dans les situations de code abstrait php obtenir tous les en-têtes
les exemples comprennent:
et ça:
1: vérifiez ou créez un journal de script pour vous assurer que votre thread atteint le point final correct et ne se ferme pas avant la fin.
la source
Instructions Plesk
Dans Plesk 12, j'avais nginx fonctionnant en tant que proxy inverse (qui, je pense, est la valeur par défaut). Donc, la première réponse actuelle ne fonctionne pas car nginx est également exécuté en tant que proxy.
Je suis allé
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
.Ensuite, au bas de cette page, vous pouvez définir les directives nginx supplémentaires que j'ai définies comme une combinaison des deux premières réponses ici:
la source
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
alors je ne sais pas ce que vous voulez dire?/etc/nginx/conf.d/proxy.conf
et redémarré nginx, cela fonctionne bien, merci!Si vous utilisez le framework Symfony: Avant de jouer avec la configuration Nginx, essayez d'abord de désactiver ChromePHP.
1 - Ouvrez app / config / config_dev.yml
2 - Commentez ces lignes:
ChromePHP contient les informations de débogage codées json dans l'en-tête X-ChromePhp-Data, qui est trop grande pour la configuration par défaut de nginx avec fastcgi.
Source: https://github.com/symfony/symfony/issues/8413#issuecomment-20412848
la source
Nous avons fini par nous rendre compte que notre seul serveur qui connaissait cela avait interrompu la configuration de fpm, entraînant des erreurs / avertissements / notifications php qui étaient normalement enregistrés sur le disque étaient envoyés via le socket FCGI. Il semble qu'il y ait un bogue d'analyse lorsqu'une partie de l'en-tête est divisée entre les morceaux de tampon.
Donc, régler
php_admin_value[error_log]
sur quelque chose de réellement inscriptible et redémarrer php-fpm était suffisant pour résoudre le problème.Nous pourrions reproduire le problème avec un script plus petit:
Augmenter les tampons a rendu les 502 plus difficiles à toucher mais pas impossible, par exemple natif:
fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
:Je pense donc que la bonne réponse est: corrigez votre configuration fpm pour qu'elle enregistre les erreurs sur le disque.
la source
C'est toujours la question SO la plus élevée sur Google lors de la recherche de cette erreur, nous allons donc la supprimer.
Lorsque vous obtenez cette erreur et que vous ne souhaitez pas plonger dans les paramètres NGINX immédiatement, vous pouvez vérifier vos sorties sur la console de débogage. Dans mon cas, je produisais des charges de texte vers la console FirePHP / Chromelogger, et puisque tout est envoyé en tant qu'en-tête, cela provoquait le débordement.
Il peut ne pas être nécessaire de modifier les paramètres du serveur Web si cette erreur est causée par l'envoi de quantités insensées de messages de journal.
la source
Je ne suis pas sûr que le problème soit lié à l'en-tête PHP envoyé. Assurez-vous que la mise en mémoire tampon est activée. La manière la plus simple consiste à créer un fichier proxy.conf:
Et un fichier fascgi.conf:
Ensuite, vous devez les appeler dans votre serveur de configuration par défaut de cette façon:
la source