Setelah debugging selama 6 jam - saya menyerah ini: |
Kami memiliki nginx + php-fpm + mysql di LAN dengan hampir 100 wordpress (dibuat dan digunakan oleh desainer / pengembang yang berbeda semua bekerja pada pengaturan test wordpres)
Kami menggunakan nginx tanpa masalah lama.
Hari ini, tiba-tiba - nginx mulai mengembalikan "504 Gateway Time-out" tiba-tiba ...
Saya memeriksa log kesalahan nginx untuk host virtual ...
2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *443 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:12 [error] 12909#0: *443 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:08:32 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:33 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:44 [error] 12909#0: *1313 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:53 [error] 12909#0: *1313 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
Ketika saya menjalankan php-fpm pada port 9000 melalui mode TCP, saya menjalankan "netstat | grep 9000" dan melihat sesuatu yang tidak biasa ... (Menempelkan sebagian keluaran di sini untuk kemudahan membaca)
tcp 9 0 localhost:9000 localhost:36094 CLOSE_WAIT 14269/php5-fpm
tcp 0 0 localhost:46664 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36135 CLOSE_WAIT -
tcp 1257 0 localhost:9000 localhost:36125 CLOSE_WAIT -
tcp 9 0 localhost:9000 localhost:36102 CLOSE_WAIT 14268/php5-fpm
tcp 0 0 localhost:46662 localhost:9000 FIN_WAIT2 -
tcp 745 0 localhost:9000 localhost:46644 CLOSE_WAIT -
tcp 0 0 localhost:46658 localhost:9000 FIN_WAIT2 -
tcp 1265 0 localhost:9000 localhost:46607 CLOSE_WAIT -
tcp 0 0 localhost:46672 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1257 0 localhost:9000 localhost:36119 CLOSE_WAIT -
tcp 1265 0 localhost:9000 localhost:46613 CLOSE_WAIT -
tcp 0 0 localhost:46646 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36137 CLOSE_WAIT -
tcp 0 0 localhost:46670 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1265 0 localhost:9000 localhost:46619 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46668 ESTABLISHED -
tcp 0 0 localhost:46648 localhost:9000 FIN_WAIT2 -
tcp 1336 0 localhost:9000 localhost:46670 ESTABLISHED -
tcp 9 0 localhost:9000 localhost:36108 CLOSE_WAIT 14274/php5-fpm
tcp 1336 0 localhost:9000 localhost:46684 ESTABLISHED -
tcp 0 0 localhost:46674 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1336 0 localhost:9000 localhost:46666 ESTABLISHED -
tcp 1257 0 localhost:9000 localhost:46648 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46678 ESTABLISHED -
tcp 0 0 localhost:46668 localhost:9000 ESTABLISHED 12909/nginx: wo
Ada banyak pasangan "CLOSE_WAIT" & "FIN_WAIT2" seperti yang disorot di bawah ini (dalam output di atas):
tcp 1337 0 localhost:9000 localhost:46680 CLOSE_WAIT -
tcp 0 0 localhost:46680 localhost:9000 FIN_WAIT2 -
Harap perhatikan port 46680 di atas.
Saya mengaktifkan log kesalahan kueri mysql lambat, tetapi tidak berhasil.
Sampai sekarang me-restart php5-fpm setiap menit melalui cronjob (lihat perintah di bawah) menjaga semuanya berjalan "lancar" tapi saya benci patchwork dan ingin menyelesaikan ini ...
1 * * * * service php5-fpm restart > /dev/null
Saya mencari secara luas di Google - tidak mendapat bantuan. Seperti yang disebutkan, ini adalah server uji di LAN, beban CPU tidak pernah melewati 0,10 dan penggunaan memori juga di bawah 25% (Sistem memiliki 2GB RAM dan server ubuntu diinstal) Jadi jika Anda merasa bingung untuk membantu saya, silakan setidaknya memberikan petunjuk.
Terima kasih sebelumnya atas bantuannya.
-Rahul
(catatan - ini adalah pengeposan ulang - http://forum.nginx.org/read.php?11,127694 )
Pembaruan: Saya menemukan jawaban, yang diposting di bawah ini.
[global]
. Ini berfungsi hanya jika Anda juga memiliki kolam konfigurasi di sana. Juga: request_terminate_timeout docs .request_terminate_timeout=30s
ke dalamphp-fpm.conf
file saya menyebabkan kesalahan (111 Koneksi Ditolak). Ketika saya memindahkannya kewww.conf
file saya itu berhasil.Di sini cara mengatasi masalah saya:
buat perubahan berikut ke /etc/nginx/nginx.conf di http {bagian
dan kemudian restart nginx
/etc/init.d/nginx restart
sumber
Jika Anda menggunakan php 5.3, tambah backlog.
Jika Anda menggunakan php 5.2, backport patch untuk menambah ukuran backlog dari 128.
Juga, gunakan soket unix daripada soket TCP. unix: /tmp/php5-cgi.sock (atau jalur yang relevan)
sumber
Terima kasih banyak
request_terminate_timeout = 30s
Ini bekerja dengan baik untuk saya
tetapi, saya harus menyisipkan baris dalam file ini: "/etc/php5/fpm/pool.d/www.conf" yang bisa dikatakan di "Bagian Pekerja".
PHP 5.3.21-1 - Wordpress 3.5.1
http://php-fpm.org/wiki/Configuration_File
sumber
dalam kasus saya (pesan kesalahan nginx yang sama), beberapa skrip php bermasalah tidak berakhir untuk mengeksekusi dan menunggu sesuatu, sehingga tidak ada lagi anak-anak php5-fpm untuk dipilih nginx.
memperbaiki:
request_terminate_timeout=30s
pm.max_spare_servers=16
pm.min_spare_servers=2
sekarang semuanya bekerja seperti pesona.
sumber
Saya memiliki masalah yang sama dan saya menyelesaikannya dengan sepenuhnya menghapus Apache:
Setelah itu saya merekomendasikan untuk memulihkan PHP dan NGINX:
sumber
Bagi saya masalah yang sama terjadi setelah menghapus rabbitmq dari server. Tidak ada satu pun di atas yang tidak berguna, menginstal ulang semua modul php5 memecahkan masalah. Saya memiliki Debian 8.2 di server itu. Semoga bermanfaat bagi seseorang.
sumber
Ini juga dapat membantu orang-orang:
Tergantung pada apa pengaturan Anda, Anda harus melihat params konfigurasi fastcgi dan juga php ... dalam kasus saya (saya menggunakan apache2 + php5-fpm) dan waktu max_execution juga tergantung pada berapa lama modul fastcgi menunggu respon ( -idle-timeout) ...
http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer
sumber