এনগিনেক্স কনফিগারেশন ফাইলটি ডিবাগ করার সেরা উপায়?


37

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

এটি একটি বরং বেদনাদায়ক প্রক্রিয়া কারণ আমি দেখতে পাচ্ছি না যে আমার পুনর্লিখনের নিয়মগুলি এবং "যদি" শর্তগুলি আমি যেমন চাই তেমন কাজ করছে কিনা।

অ্যাপাচি এর পুনর্লিখনের মডিউলটির জন্য ডিবাগিং করেছে। এনগিনেক্সের জন্য আমি কী করতে পারি?

উত্তর:


37

সক্ষম করুন rewrite_log:

rewrite_log on;

এবং error_logনির্দেশে ডিবাগ স্তর সেট করুন :

error_log /var/log/nginx/localhost.error_log notice;

অ্যাপাচি এর খুব কাছাকাছি;) আমি অবশ্যই অবশ্যই এনজিঙ্ক্সের দিকে নজর দিতে পারি
অলিভিয়ার পন্স

নোট করুন যে এটি পুনরায় লেখার ডিবাগিংয়ের চেয়ে বেশি ব্যবহার করা যেতে পারে। আপনি "DEBUG DEBUG বিরতি পুনর্লিখন" যোগ করতে পারেন; আপনি যে কোনও জায়গায় এনগিনেক্স কনফিগারেশনে পছন্দ করুন এবং দেখুন এটি কখন হিট হবে। এই পুনর্লিখনের লাইনটি কার্যকরভাবে কিছুই করে না (যদি অবস্থান "DEBUG" টি মিলে যায় তবে এটি "DEBUG" দিয়ে প্রতিস্থাপন করুন) লগ হওয়ার জন্য একটি লাইন ট্রিগার করা ছাড়াও। আপনি প্রযুক্তিগতভাবে এর মতো আউটপুট ভেরিয়েবলগুলিও করতে পারেন: "পুনর্লিখন করুন * বা পুনর্লিখন। * "'$ http_x_forward__' $ অনুরোধ" বিরতি; - যদিও এর ফলে অনুরোধটি ব্যর্থ হয়। এক্সেস_লগের জন্য কাস্টম লগ ফর্ম্যাটে ভেরিয়েবল যুক্ত করা ভাল।
কার্টিস ইয়ালাপ

14

ডিবাগিং সমর্থন সক্ষম করুন , তারপরে ত্রুটি_ব্লগে ডিবাগ স্তর সেট করুন।

error_log   /var/log/nginx/error.log debug;

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

ওহ, এবং আপনার সচেতন হওয়া উচিত যে যদি মন্দ হয় তবে কোনও স্থানের প্রসঙ্গে কমপক্ষে ...


3
noticeঅনেক বেশী ভালো debugহিসাবে error_levelনতুন করে লেখা হয় ডিবাগ করা হয়েছে কারণ এটি লো-লেভেল অপ্রাসঙ্গিক ডিবাগ তথ্য (; প্রতি অনুরোধ 50+ লাইন যেমন SSL বা gzip, বিবরণ) অনেকটা এড়িয়ে যাবে না।
ড্যান ড্যাসকলেসকু

1

ডিবাগিংয়ের জন্য লগগুলি এবং অন্তর্নির্মিত সমর্থনগুলি ব্যবহার করা অবশ্যই সবচেয়ে যুক্তিসঙ্গত উপায়। আপনি যদি প্রাথমিক পর্যায়ে কিছু দ্রুত রাউটিং ডিবাগিং করছেন এবং কেবল 4XX "পাঠ্য" ব্যবহার করে ব্রাউজার / ক্লায়েন্টের সাথে যোগাযোগ করতে চান ; নির্দেশিকা আপনাকে খুব অল্প চেষ্টা করে উত্তরও দিতে পারে। উদাহরণ স্বরূপ,

http {
  server {
    listen 80;
    server_name mydomain.net;
    return 404 "mydomain 80 route";
  }

  server {
    listen 80 default_server;
    return 404 "default 80 route";
  }
}

প্রত্যাবর্তিত ওয়েবপৃষ্ঠায় থাকা পাঠ্যটি আপনাকে বলবে যে serverআপনার অনুরোধটি কোনটি ব্লক হয়েছে।

আশাকরি এটা সাহায্য করবে!
আন্দ্রেজ

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