Я получаю такие ошибки:
2014/05/24 11:49:06 [ошибка] 8376 # 0: * 54031 обратный поток отправил слишком большой заголовок при чтении заголовка ответа из восходящего потока, клиент: 107.21.193.210, сервер: aamjanata.com, запрос: «GET / the- Brainwash-хроник спонсируемых-на-Гуджарат правительства /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- спонсировал-на-Гуджарат правительство /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by- Гуджарат правительство /,% 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.ком / заместитель Brainwash-хроник спонсируемых-на-Гуджарат правительства /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the- Brainwash-хроник спонсируемых-на-Гуджарат правительства /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- спонсировал-на-Гуджарат правительство /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by- Гуджарат правительство /,% 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.ком / заместитель Brainwash-хроник спонсируемых-на-Гуджарат правительства /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the- Brainwash-хроник спонсируемых-на-Гуджарат правительства /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles- спонсировал-на-Гуджарат правительства /,% 20ht
Всегда одно и то же. URL повторяется снова и снова с разделением запятыми. Не могу понять, что является причиной этого. У кого-нибудь есть идея?
Обновление: еще одна ошибка:
http request count is zero while sending response to client
Вот конфиг. Есть и другие не относящиеся к делу вещи, но эта часть была добавлена / отредактирована
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;
}
А затем в блоке сервера: установите $ 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";
}`
Ответы:
Добавьте следующее в ваш файл conf
источник
fast_cgi_buffers
не помогло, попробуйтеproxy_buffers
ответ ниже : @amd/etc/nginx/nginx.conf
а значения должны находиться внутри http {...}Если nginx работает как прокси / обратный прокси
то есть для пользователей
ngx_http_proxy_module
В дополнение к этому
fastcgi
,proxy
модуль также сохраняет заголовок запроса во временном буфере.Так что вам может понадобиться также увеличить
proxy_buffer_size
иproxy_buffers
или полностью отключить (пожалуйста, прочитайте документацию по nginx ).Пример конфигурации буферизации прокси
Пример отключения вашего прокси-буфера (рекомендуется для длинных серверов опросов)
Для получения дополнительной информации: документация модуля прокси Nginx
источник
writev() failed (104: Connection reset by peer) while sending to client
Могут ли эти настройки прокси исправить эту ошибку, и пойдут ли они на вышестоящий сервер или прокси?proxy_buffers 4 ...
? Поскольку по умолчанию, кажется, 8upstream sent too big header while reading response header from upstream
это общий способ сказать nginx: «Мне не нравится то, что я вижу»3: Посмотрите журналы ошибок над сообщением, потоковое ли это с зарегистрированными строками, предшествующими сообщению?
PHP message: PHP Notice: Undefined index:
Пример фрагмента из цикла мой лог-файл:Вы можете увидеть в 3-й строке снизу, что предел буфера был достигнут, нарушен, и следующий поток записал поверх него. Затем Nginx закрыл соединение и вернул 502 клиенту.
2: зарегистрируйте все заголовки, отправленные по запросу, просмотрите их и убедитесь, что они соответствуют стандартам (nginx не разрешает удалять / истекать файлы cookie старше 24 часов, отправляя недопустимую длину содержимого, поскольку сообщения об ошибках были буферизированы до подсчета содержимого. ..). Вызов функции getallheaders обычно может помочь в ситуациях с абстрактным кодом. php get all headers
примеры включают в себя:
и это:
1: проверьте или создайте журнал сценария, чтобы убедиться, что ваш поток достигает правильной конечной точки и не завершается до завершения.
источник
Инструкции Plesk
В Plesk 12 у меня был запущен nginx в качестве обратного прокси-сервера (который я считаю по умолчанию). Так что текущий топовый ответ не работает, так как nginx также запускается как прокси.
Я пошел в
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
.Затем в нижней части этой страницы вы можете установить дополнительные директивы nginx, которые я установил как комбинацию двух верхних ответов:
источник
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
то я не уверен, что вы имеете в виду?/etc/nginx/conf.d/proxy.conf
и перезапустил nginx, все работает отлично, спасибо!Если вы используете платформу Symfony: прежде чем связываться с конфигом Nginx, попробуйте сначала отключить ChromePHP.
1 - Откройте приложение / config / config_dev.yml
2 - Прокомментируйте эти строки:
ChromePHP упаковывает отладочную информацию, закодированную json в заголовок X-ChromePhp-Data, которая слишком велика для конфигурации по умолчанию nginx с fastcgi.
Источник: https://github.com/symfony/symfony/issues/8413#issuecomment-20412848
источник
В конце концов мы поняли, что наш единственный сервер, который испытывал это, вывел конфигурацию fpm, в результате чего php ошибки / предупреждения / уведомления, которые обычно записывались на диск, отправлялись через сокет FCGI. Похоже, есть ошибка синтаксического анализа, когда часть заголовка разделяется на части буфера.
Так что установки
php_admin_value[error_log]
для чего-то действительно доступного для записи и перезапуска php-fpm было достаточно для решения проблемы.Мы могли бы воспроизвести проблему с помощью меньшего скрипта:
Повышение буфера сделало 502-е сложнее, но не невозможным, например, нативные:
fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
:Поэтому я считаю, что правильный ответ: исправьте конфигурацию fpm, чтобы она записывала ошибки на диск.
источник
Это по-прежнему самый высокий SO-вопрос в Google при поиске этой ошибки, так что давайте поднимем ее.
Когда вы получаете эту ошибку и не хотите сразу углубляться в настройки NGINX, вы можете проверить свои выводы на консоли отладки. В моем случае я выводил множество текста в консоль FirePHP / Chromelogger, и, поскольку все это отправляется в виде заголовка, это вызывало переполнение.
Возможно, нет необходимости изменять настройки веб-сервера, если эта ошибка вызвана просто отправкой безумных количеств сообщений журнала.
источник
Я не уверен, что проблема связана с тем, что отправляет php заголовок. Убедитесь, что буферизация включена. Простой способ - создать файл proxy.conf:
И файл fasgi.conf:
Затем вам нужно вызвать их на вашем конфигурационном сервере по умолчанию следующим образом:
источник