Saya mendapatkan kesalahan semacam ini:
2014/05/24 11:49:06 [kesalahan] 8376 # 0: * 54031 hulu mengirim tajuk terlalu besar saat membaca tajuk respons dari hulu, klien: 107.21.193.210, server: aamjanata.com, permintaan: "DAPATKAN / the- brainwash-chronicles-disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the-brainwash-chronicles- disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by- gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-government/ ,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: / aamjanata.com / the-brainwash-chronicles-disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the- brainwash-chronicles-disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the-brainwash-chronicles- disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 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-disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the- brainwash-chronicles-disponsori-oleh-gujarat-government /,% 20https: /aamjanata.com/the-brainwash-chronicles-sponsored-by-gujarat-pemerintah /,% 20https: /aamjanata.com/the-brainwash-chronicles- disponsori-oleh-gujarat-pemerintah /,% 20ht
Selalu sama. Sebuah url berulang-ulang dengan tanda koma. Tidak tahu apa yang menyebabkan ini. Adakah yang punya ide?
Perbarui: Kesalahan lain:
http request count is zero while sending response to client
Di sini adalah konfigurasi. Ada hal-hal lain yang tidak relevan, tetapi bagian ini ditambahkan / diedit
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;
}
Dan kemudian di blok server: 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";
}`
Jawaban:
Tambahkan berikut ini ke file conf Anda
sumber
fast_cgi_buffers
tidak membantu, cobaproxy_buffers
jawaban di bawah ini dengan @amd/etc/nginx/nginx.conf
dan nilainya harus masuk ke dalam http {...}Jika nginx dijalankan sebagai proxy / proxy terbalik
yaitu untuk pengguna
ngx_http_proxy_module
Selain itu
fastcgi
,proxy
modul juga menyimpan header permintaan dalam buffer sementara.Jadi, Anda mungkin perlu menambah
proxy_buffer_size
danproxy_buffers
, atau menonaktifkannya sama sekali (Silakan baca dokumentasi nginx ).Contoh konfigurasi penyangga proxy
Contoh menonaktifkan buffer proxy Anda (disarankan untuk server polling panjang)
Untuk informasi lebih lanjut: Dokumentasi modul proksi Nginx
sumber
writev() failed (104: Connection reset by peer) while sending to client
Apakah pengaturan proxy itu mungkin memperbaiki kesalahan itu, dan apakah akan pergi di server hulu atau proxy?proxy_buffers 4 ...
? Karena standar tampaknya 8upstream sent too big header while reading response header from upstream
adalah cara umum nginx untuk mengatakan "Saya tidak suka apa yang saya lihat"3: Lihatlah log kesalahan di atas pesan, apakah itu mengalir dengan garis yang dicatat sebelum pesan?
PHP message: PHP Notice: Undefined index:
Cuplikan contoh dari loop file log saya:Anda dapat melihat di baris ke-3 dari bawah bahwa batas penyangga dipukul, putus, dan utas berikutnya menulis di atasnya. Nginx kemudian menutup koneksi dan mengembalikan 502 ke klien.
2: catat semua tajuk yang dikirim per permintaan, tinjau dan pastikan sesuai dengan standar (nginx tidak mengizinkan apa pun yang lebih dari 24 jam untuk menghapus / kedaluwarsa kuki, mengirimkan panjang konten yang tidak valid karena pesan kesalahan disangga sebelum konten dihitung. ..) panggilan fungsi getallheaders biasanya dapat membantu dalam situasi kode abstrak, php get all header
contohnya termasuk:
dan ini:
1: verifikasi, atau buat log skrip, untuk memastikan utas Anda mencapai titik akhir yang benar dan tidak keluar sebelum selesai.
sumber
Instruksi plesk
Di Plesk 12, saya menjalankan nginx sebagai proksi terbalik (yang menurut saya adalah default). Jadi jawaban teratas saat ini tidak berfungsi karena nginx juga dijalankan sebagai proxy.
Saya pergi ke
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
.Kemudian di bagian bawah halaman itu Anda dapat mengatur arahan nginx tambahan yang saya tetapkan untuk menjadi kombinasi dari dua jawaban teratas di sini:
sumber
Subscriptions | [subscription domain] | Websites & Domains (tab) | [Virtual Host domain] | Web Server Settings
maka saya tidak yakin apa yang Anda maksud?/etc/nginx/conf.d/proxy.conf
dan restart nginx, itu berfungsi dengan baik, terima kasih!Jika Anda menggunakan kerangka kerja Symfony: Sebelum mengacaukan konfigurasi Nginx, coba nonaktifkan ChromePHP terlebih dahulu.
1 - Buka aplikasi / config / config_dev.yml
2 - Komentari baris ini:
ChromePHP mengemas info debug json-encoded di header X-ChromePhp-Data, yang terlalu besar untuk konfigurasi default nginx dengan fastcgi.
Sumber: https://github.com/symfony/symfony/issues/8413#issuecomment-20412848
sumber
Kami akhirnya menyadari bahwa satu server kami yang mengalami ini telah merusak konfigurasi fpm yang mengakibatkan kesalahan / peringatan / pemberitahuan php yang biasanya masuk ke disk sedang dikirim melalui soket FCGI. Sepertinya ada bug penguraian ketika bagian dari header terbelah melintasi potongan buffer.
Jadi pengaturan
php_admin_value[error_log]
ke sesuatu yang benar-benar dapat ditulisi dan memulai kembali php-fpm sudah cukup untuk memperbaiki masalah.Kami dapat mereproduksi masalah dengan skrip yang lebih kecil:
Mengangkat buffer membuat 502s lebih sulit dipukul tetapi bukan tidak mungkin, misalnya asli:
fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
:Jadi saya percaya jawaban yang benar adalah: perbaiki konfigurasi fpm Anda sehingga log kesalahan ke disk.
sumber
Ini masih merupakan pertanyaan SO tertinggi di Google saat mencari kesalahan ini, jadi mari kita bahas itu.
Saat mendapatkan kesalahan ini dan tidak ingin menyelami lebih dalam pengaturan NGINX segera, Anda mungkin ingin memeriksa output Anda ke konsol debug. Dalam kasus saya, saya mengeluarkan banyak teks ke konsol FirePHP / Chromelogger, dan karena ini semua dikirim sebagai header, itu menyebabkan overflow.
Mungkin tidak diperlukan untuk mengubah pengaturan server web jika kesalahan ini disebabkan hanya dengan mengirim sejumlah besar pesan log.
sumber
Saya tidak yakin bahwa masalahnya terkait dengan apa yang dikirim header php. Pastikan buffering diaktifkan. Cara sederhana adalah membuat file proxy.conf:
Dan file fascgi.conf:
Selanjutnya Anda perlu memanggil mereka di server konfigurasi default Anda dengan cara ini:
sumber