এনজিনেক্স: আমি কীভাবে এনজিএনএক্স থেকে 500 এলোমেলো ট্র্যাক করব (আমার অ্যাপ্লিকেশন নয়)। সম্ভাব্য লোডের সাথে কিছু করার আছে?


9

আমরা সম্প্রতি এনগিনেক্স থেকে প্রায় 500 এর কাছাকাছি পেয়েছি যে কোনওভাবে লগ করা হয়নি (আমাদের স্ক্রিনশট রয়েছে, তবে লগগুলিতে কিছুই নেই)। এটি নিজেই অদ্ভুত, কারণ সাধারণত ত্রুটিগুলি সেখানে প্রদর্শিত হয়। নির্বিশেষে, আমি ভাবছি যে কোনও সংযোগ পুলের আকারের মতো এমন কিছু আছে যা যদি সর্বোচ্চ হয় তবে 500 এর ফলাফল হয়? আমরা ট্র্যাফিকের সাম্প্রতিকতম স্পাইকের সাথে এটি সম্ভাব্যভাবে সংযুক্ত করেছি, তবে এটি চূড়ান্ত নয়।

এই জাতীয় সমস্যাটি কীভাবে শুরু করা যায় সে সম্পর্কে কারও কোনও ধারণা আছে?


আপনাকে প্রথমে দুটি জিনিস যা করতে হবে তা হ'ল এই ত্রুটিটি পুনরুত্পাদন এবং Nginx লগ ইন না করার কারণটি খুঁজে বের করুন error_log। আপনার কনফিগারেশন ফাইল পোস্ট করুন।
কোয়ান্টা

উত্তর:


6

আমরা এই জাতীয় জিনিসগুলি ধরার জন্য এনজিনেক্স এবং লেমনগুলিতে লগ ফর্ম্যাটগুলির সংমিশ্রণ ব্যবহার করি। এনজিআইএনএক্স লগ ফর্ম্যাট এর মতো:

লগ_ফর্ম্যাট প্রধান '$ স্থিতি: $ অনুরোধ_টাইম: $ upstream_response_Time: $ পাইপ: $ বডি_বাইটস_সেস্ট $ সংযোগ $ রিমোট_এডিডিআর $ হোস্ট $ রিমোট_ইউজার [$ সময়_লোকাল] "$ অনুরোধ" "$ http_referr" "$ http_user_agent_dstachecusdaged_strus_agest_x_" ইন: $ http_cookie "'

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

আমরা এই লগগুলি দেখতে LMON ব্যবহার করি এবং তারপরে লগগুলিতে 500s, 503s, 400 এর মতো ত্রুটি দেখতে পাওয়া গেলে আমাদের (পেজার / ইমেল) সতর্ক করে দিন:

http://www.bsdconsulting.no/tools/lmon-README

এটি কোনও সমস্যার সংঘটিত হওয়ার সময় সতর্ক হতে সহায়তা করতে পারে যা এটির ডিবাগ করার সহজতম সময়।

আপনি ইতিমধ্যে অন্যটি বিবেচনা করা উচিত যা আপনি ইতিমধ্যে না রেখেছেন তা হ'ল ডিফল্টভাবে এনজিনেক্স 500 কে মারাত্মক অবস্থা হিসাবে বিবেচনা করে এবং অন্য প্রবাহের চেষ্টা করে না। আপনার যদি একাধিক প্রবাহ থাকে তবে এটি 500 পেয়ে গেলে অন্যটি ব্যবহারের জন্য এটি কনফিগার করতে পারেন, আশা করি ব্যবহারকারীর কাছ থেকে ব্যর্থতাটি অস্পষ্ট করবেন:

http://wiki.nginx.org/NginxHttpProxyModule#proxy_next_upstream


এটি একটি খুব সহায়ক উত্তর, ধন্যবাদ! বাস্তবায়নের জন্য প্রক্সি_পরিচালনা_প্রবাহ বন্ধ করুন ...
ক্যালিডোমডালিয়ন

4

error_log $filename debug; ত্রুটি লগতে ডিবাগ স্তরের লগিং চালু করবে - এটি আপনাকে ত্রুটির সময় nginx এর অভ্যন্তরীণ স্থিতির অনেকগুলি এবং প্রচুর বিবরণ দেবে, এবং --with-debug (যা বেশ কয়েকটি ডিস্ট্রো ডিফল্টরূপে করে) এর সাথে সংকলিত হয়েছে আমি আরও দিতে হবে।

সতর্কতা অবলম্বন করুন যে "ডিবাগ" স্তরটি সত্যই প্রচুর আউটপুট উত্পন্ন করে , আপনি যে ডিস্কের স্থানটি দেখতে চাইতে পারেন ...


1

আমার ক্ষেত্রে কনফ ফাইলটি সঠিকভাবে নামকরণ করা হয়নি (উদাহরণ.com.com এর পরিবর্তে example.com ছিল) এবং এতে অন্তর্ভুক্ত ছিল না। একরকম এটি 'ওয়েলকাম টু এনজিনেক্স'-এর ফলস্বরূপ হয়নি তবে লগ-করা এইচটিটিপি 500 ত্রুটিতে রয়েছে। ঠিক আছে, এটি আসলে লগইন করা হয়েছিল, তবে ভিন্ন ভার্চুয়াল হোস্টের ত্রুটি ফাইলটিতে যা সেই নির্দিষ্ট ইউআরএলটির সাথে কাজ করতে পারে নি।

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