এনগিনেক্স + পিএইচপি-এফপিএম প্রায় 50 শূন্য লোড সহ "504 গেটওয়ে টাইম আউট" ত্রুটি (একটি পরীক্ষা-সার্ভারে)


29

6 ঘন্টা ডিবাগ করার পরে - আমি এটি ছেড়ে দিচ্ছি: |

আমাদের কাছে প্রায় ১০০ ওয়ার্ডপ্রেস সহ ল্যানে একটি এনগিনেক্স + পিএইচপি-এফপিএম + মাইএসকিএল রয়েছে (পরীক্ষার ওয়ার্ডপ্রেস সেটআপে কাজ করা বিভিন্ন ডিজাইনার / বিকাশকারীগণ তৈরি করেছেন এবং ব্যবহার করেছেন)

আমরা দীর্ঘকাল থেকে কোনও সমস্যা ছাড়াই এনজিনেক্স ব্যবহার করছি।

আজ, হঠাৎ করে - nginx নীলের বাইরে "504 গেটওয়ে টাইম-আউট" ফিরিয়ে দেওয়া শুরু করেছে ...

আমি ভার্চুয়াল হোস্টের জন্য এনজিনেক্স ত্রুটি লগ চেক করেছি ...

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"

আমি টিসিপি মোডের মাধ্যমে 9000 পোর্টে পিএইচপি-এফএমপি চালানোর সময়, আমি "নেটস্ট্যাট | গ্রেপ 9000" দৌড়ে গিয়েছিলাম এবং কিছু অস্বাভাবিক লক্ষ্য করেছি ... (পড়ার স্বাচ্ছন্দ্যের জন্য এখানে আংশিক আউটপুট আটকানো)

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             

নীচে হাইলাইট করা (উপরের আউটপুটে) প্রচুর পরিমাণে "CLOSE_WAIT" এবং "FIN_WAIT2" জোড়া রয়েছে:

tcp     1337      0 localhost:9000          localhost:46680         CLOSE_WAIT  -               
tcp        0      0 localhost:46680         localhost:9000          FIN_WAIT2   -

উপরে পোর্ট 46680 নোট করুন।

আমি মাইএসকিএল স্লো কোয়েরি ত্রুটি লগ সক্ষম করেছি, কিন্তু এটি কার্যকর হয়নি।

এখন প্রতি মুহূর্তে ক্রোনজব মাধ্যমে পিএইচপি 5-এফপিএম পুনরায় চালু করা (নীচের কমান্ডটি দেখুন) সবকিছু "সুচারুভাবে" চালিয়ে যাচ্ছি তবে আমি প্যাচওয়ার্কটি ঘৃণা করি এবং এটি সমাধান করতে চাই ...

1 * * * * service php5-fpm restart > /dev/null

আমি গুগলে ব্যাপক অনুসন্ধান করেছি - কোনও সহায়তা পাইনি। যেমনটি উল্লেখ করা হয়েছে, এটি ল্যানের একটি পরীক্ষা-সার্ভার, সিপিইউ লোডটি কখনই 0.10 অতিক্রম করে না এবং মেমরির ব্যবহার 25% এর নিচেও থাকে (সিস্টেমে 2 জিবি র‌্যাম এবং উবুন্টু-সার্ভার ইনস্টল রয়েছে) সুতরাং যদি আপনি আমাকে সময়সীমা বেঁধে দিতে সহায়তা করেন তবে দয়া করে দয়া করে কমপক্ষে একটি ইঙ্গিত ড্রপ।

সাহায্যের জন্য আগাম ধন্যবাদ।

-Rahul

(দ্রষ্টব্য - এটি পুনরায় পোস্ট করা হচ্ছে - http://forum.nginx.org/read.php?11,127694 )

আপডেট: আমি উত্তর পেয়েছি, যা নীচে পোস্ট করা হয়েছে।

উত্তর:


31

আমি nginx ফোরামে আমার পোস্টিংয়ের উত্তর পেয়েছি - http://forum.nginx.org/read.php?2,127854

উত্তরটি, আমার ক্ষেত্রে, সেট করতে হবে:

request_terminate_timeout=30s

পিএইচপি-এফপিএম কনফিগারেশনে (সাধারণত /etc/php5/fpm/php-fpm.conf)

দ্রষ্টব্য, আপনি 30 এর চেয়ে অন্য মানগুলিও ব্যবহার করতে পারেন।

আমি এটি মূল php.iniফাইলটিতে আমার মানের সাথে মেলে যা ব্যবহার করে:

max_execution_time = 30

সবাইকে ধন্যবাদ. :-)


5
এই কনফিগারেশনটি www.conf ফাইলেও পাওয়া যেতে পারে। উত্তরের জন্য ধন্যবাদ যদিও, এটি কৌশলটি করেছে বলে মনে হচ্ছে।
এডিমেমায়া

2
এটি একটি পুল-স্তরের নির্দেশিকা, পিএইচপি-এফএমপিএমএফ-এর [global]বিভাগে রাখার চেষ্টা করার সময় আপনি একটি ত্রুটি বার্তা পাবেন । এটি কেবল তখন কাজ করে যদি আপনার নিজের পুল কনফিগারও থাকে। এছাড়াও: অনুরোধ_মার্জন_সামগ্রী ডক্স
tanius

যদি এটির সঠিক উত্তর যা আমি সত্যিই প্রয়োজন, তবে এই শুক্রবারটি 2015 সালের সেরা হবে।
ফিলিপ

2
আমি দেখতে পেলাম যে request_terminate_timeout=30sআমার php-fpm.confফাইলটি স্থাপনের ফলে একটি (111 সংযোগ প্রত্যাখ্যান) ত্রুটি হয়েছিল। আমি যখন এটি আমার www.confফাইলে স্থানান্তরিত করি তখন এটি কাজ করে।
এজেবি

CentOS 7.2 তে পিএইচপি 7 ব্যবহার করার সময়, অনুরোধ_মিটার_টাইমআউটটি অবস্থিত:
/etc/php-fpm.d/www.conf

16

এটি কীভাবে আমার সমস্যাটির সমাধান করেছে:

HTTP {বিভাগে /etc/nginx/nginx.conf এ নিম্নলিখিত পরিবর্তনগুলি করুন

proxy_connect_timeout  600s;
proxy_send_timeout  600s;
proxy_read_timeout  600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;

এবং তারপরে nginx পুনরায় চালু করুন

/etc/init.d/nginx পুনরায় চালু করুন


2
হ্যাঁ, সত্যই মনে হচ্ছে না যে প্রশ্নটি জিজ্ঞাসা করা ব্যক্তিটির সমস্যাটির সাথে এর কোনও যোগসূত্র রয়েছে।
আশাহীন N00b

3
তবে ভাগ্যক্রমে আমার যা প্রয়োজন ছিল :)
লুচানিনভ

এটি আমার সমস্যাটি সমাধান করে নি, তবে সময়সীমা বার্তার পরিবর্তে এটি আমাকে সত্যিকারের ত্রুটি দেখার অনুমতি দিয়েছে, যা আমাকে প্রকৃত সমস্যার দিকে নিয়ে গেছে।
মাইকেল

4

আপনি পিএইচপি 5.3 ব্যবহার করছেন, ব্যাকলগ বৃদ্ধি।

যদি আপনি পিএইচপি 5.2 ব্যবহার করে থাকেন তবে 128 থেকে ব্যাকলগের আকার বাড়ানোর জন্য প্যাচটি ব্যাকপোর্ট করুন।

এছাড়াও, টিসিপি সকেটের পরিবর্তে ইউনিক্স সকেট ব্যবহার করুন। ইউনিক্স: /tmp/php5-cgi.sock (বা সম্পর্কিত পথ)


আমাকে একমত হতে হবে, বিশেষত ইউনিক্স সকেটের ব্যবহারের সাথে।
ম্যাট

উত্তরের জন্য কর্মফল। আমি এনজিএনএক্স মেলিং তালিকায় একটি সমাধান পেয়েছি।
rahul286

@ রাহুল 286 কোন উত্তর? আমি আগ্রহী!
ব্রিটিশ

@ ফ্রেটি আমার নীচে নীচে দেখুন - serverfault.com/a/179136/17440
rahul286

3

দুর্দান্ত, ধন্যবাদ

request_terminate_timeout = 30s

এটি আমার পক্ষে পুরোপুরি কাজ করে

তবে, আমাকে এই ফাইলটিতে লাইনটি প্রবেশ করতে হয়েছিল: "/etc/php5/fpm/pool.d/www.conf" যা "কর্মী বিভাগে" বলতে হবে।

পিএইচপি 5.3.21-1 - ওয়ার্ডপ্রেস 3.5.1

http://php-fpm.org/wiki/Configuration_File


আমার মধ্যে এমন উপাদানগুলির সংমিশ্রণ ছিল যা আপনার রেসিপিটি ম্যাজিক ট্রিকটি করেছিল এমন 502 ত্রুটি সৃষ্টি করে! তোমাকে অনেক ধন্যবাদ!
জর্জে ভিসেন্টে মেন্ডোজা

2

আমার ক্ষেত্রে (একই এনজিনেক্স ত্রুটি বার্তা), কিছু সমস্যাযুক্ত পিএইচপি স্ক্রিপ্টগুলি কার্যকর করতে শেষ হয় না এবং কোনও কিছুর জন্য অপেক্ষা করে থাকে, ফলস্বরূপ nginx বাছাইয়ের জন্য আর পিএইচপি 5-এফএমপি বাচ্চাদের বাছাই করা হয় না।

ঠিক:

  1. এক্সিকিউশন সময় সীমা যোগ করুন অন্যান্য এটি এই পোস্টে উল্লেখ করেছে। request_terminate_timeout=30s
  2. বাচ্চাদের সংখ্যা বাড়াতে এবং সবকিছু একটি কবজ মত কাজ। pm.max_spare_servers=16 pm.min_spare_servers=2

এখন সবকিছু একটি কবজ মত কাজ।


আমার পিএইচপি স্ক্রিপ্টে আমার দীর্ঘদিন ধরে বহিরাগত সংযোগের অনুরোধ ছিল। দীর্ঘকাল ধরে চলমান কাজগুলি সন্ধান করুন এবং তাদের জন্য একটি সময়সীমা রেখে দিন।
আলী নাদালিজাদেহ

1

আমারও একই সমস্যা ছিল এবং আমি এটি অ্যাপাচি সম্পূর্ণরূপে অপসারণের মাধ্যমে সমাধান করেছি:

yum remove httpd

এর পরে আমি পিএইচপি এবং এনজিআইএনএক্স উভয়ই পুনরুদ্ধার করলাম:

/etc/init.d/nginx restart
/etc/init.d/php-fpm restart

1
আমাদের সার্ভারে তখন অ্যাপাচি ছিল না। আপনার কেসটি এটি ভবিষ্যতে আমাদের সহায়তা করতে পারে তা জেনে আনন্দিত।
rahul286

0

আমার জন্য একই সমস্যাটি সার্ভার থেকে খরগোশকে সরিয়ে নেওয়ার পরে দেখা দিয়েছে। উপরোক্ত অপব্যবহারযোগ্য কিছুই নয়, সমস্ত পিএইচপি 5 মডিউল পুনরায় ইনস্টল করে সমস্যার সমাধান হয়েছে। আমার সেই সার্ভারে ডেবিয়ান 8.2 ছিল। আশা করি কারও পক্ষে সহায়ক হবে।


-1

এটি লোকদের সহায়তা করতে পারে:

আপনার সেটআপটি কিসের উপর নির্ভর করে আপনার পিএইচপি পাশাপাশি ফাস্টসিগি কনফিগারেশন প্যারামগুলিও দেখতে হবে ... আমার ক্ষেত্রে (আমি অ্যাপাচি 2 + পিএইচপি 5-এফপিএম ব্যবহার করছি) এবং সর্বোচ্চ_অ্যাকশন সময়ও নির্ভর করে যে ফাস্টসিগি মডিউলটি প্রতিক্রিয়ার জন্য কতক্ষণ অপেক্ষা করে ( -সমাপ্তি সময়সীমা) ...

http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer


কেন apache2 ব্যবহার ?? আমি বলতে চাইছি আপনি php5-fpm এর সাথে ইন্টারেক্ট করার জন্য সরাসরি এনগিনেক্স ব্যবহার করতে পারেন। আপনার যখন এনগিনেক্স থাকে তখন অ্যাপাচি ব্যবহার করার দরকার নেই!
rahul286

যদি আপনি এনজিনেক্স ব্যবহার করেন, অন্যরা যদি এনজিনেক্স ব্যবহার না করেন তবে আশা করি এটি তাদের সহায়তা করবে help :-) ... আমি
অপ্যাচি 2

ঠিক আছে. আমি ভেবেছিলাম আপনি কিছু পিপল যেমন অতীতে ব্যবহার করেছিলেন যেমন আপনি পিএইচপি স্ক্রিপ্টগুলির জন্য অ্যাপাচি সহ এনগিনেক্স ব্যবহার করছেন।
rahul286
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.