nginx: সমস্ত শিরোনামের সাথে সম্পূর্ণ অনুরোধ / প্রতিক্রিয়া লগ করুন?


44

আমাদের মাঝে একটি অ্যাপ্লিকেশন সার্ভার রয়েছে যা কখনও কখনও স্তব্ধ হয়ে যায়। আমরা সন্দেহ করি এটি কোনও ক্লায়েন্টের কাছ থেকে খারাপ অনুরোধের কারণে হয়েছে।

Nginx ফাইলগুলিতে সম্পূর্ণ অনুরোধ / প্রতিক্রিয়া (ফিজার ক্যাপচারগুলির মতো) লগইন করতে পারে, তাই আমরা হ্যাং হওয়ার আগে প্রেরিত অনুরোধগুলি দেখতে পাব?

(আমাদের সম্ভবত পিসিএপ এবং সেই পদ্ধতিকে এড়িয়ে চলতে হবে এবং এগুলি এনজিএক্সে করা উচিত)

যদি এনজিনেক্স এটির জন্য সঠিক সরঞ্জাম না হয় তবে (নেটওয়ার্ক বিশ্লেষক ব্যতীত) কী হতে পারে?


1
বিপরীত প্রক্সি মোডে mitmproxy আপনি যা খুঁজছেন তা করা উচিত।
বিবেক থমাস

@ বিবেক থমাস এটি একটি এনগিনেক্স প্রশ্ন .... আমরা ইতিমধ্যে এনগিনেক্স ব্যবহার করছি এবং পরিবর্তন হবে না।
স্যামস্মিথ

3
@ স্যামস্মিথ ওল্ড প্রশ্ন, তবে এটি হয়ত অন্য কাউকে সহায়তা করে: আপনাকে এনজিঙ্কস ছেড়ে দিতে হবে না । পরিস্থিতিগুলির উপর নির্ভর করে, আপনি মিটমপ্রক্সিকে ট্র্যাফিক আটকাতে এবং ডিবাগিং সমর্থন করার জন্য সাময়িকভাবে অন্য বন্দরে পুনরায় রুট করতে পারেন। তারপরে, একবার সম্পূর্ণ হয়ে গেলে, আপনি কেবল এনগিনেক্সকে মূল পোর্ট এবং শাটডাউন মিটমপ্রক্সিতে পুনরায় রুট করতে পারেন।
প্রতি লন্ডবার্গ ২

1
আপনি মোডেস্কিউরিটি মডিউলটি ব্যবহার করতে পারেন, যা সম্পূর্ণ অনুরোধগুলি / প্রতিক্রিয়াগুলিকে লগ করতে পারে, দেখুন nginx.com/blog/modsecurity-logging- এবং-debugging
উইলেম

উত্তর:


44

দর্শনার্থীদের দ্বারা অনুরোধের client_body_in_file_only on;বৌটি প্রেরণটি $request_body_fileপেতে, লগগুলিতে লগের মধ্যে লেখা "অস্থায়ী" ফাইলটি লগ ফর্ম্যাটে ভ্যার যোগ করে লগ করুন। "অস্থায়ী" ফাইলগুলি ডিফল্টরূপে ক্লায়েন্ট_টেম্প ডিরেক্টরিতে অবস্থিত।

আপনি অনুরোধ শিরোনাম $http_<header>খুব লগ করতে পারেন এবং এর সাথে প্রেরণ শিরোনাম $sent_http_<header>

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

গোরের মতো আরও কিছু বিবেচনা করা উচিত যাতে আপনি অন্য পরিবেশে ট্র্যাফিকটি পুনরায় খেলতে পারেন যেখানে আপনি nginx এই অস্থায়ী ফাইলগুলি প্রযোজনায় আইও সমস্যাগুলি ছাড়াই লিখতে দিতে পারেন (এনজিনেক্স তাদের onমান দিয়ে সাফ করবে না এই কারণেই এটি "সাময়িক" নয় এক্ষেত্রে).


1
@ জাওয়াদস্যাক উত্তরটি মনোযোগ সহকারে পড়ুন।
জাভেয়ের লুকাস

4
@ জাভিয়ারলুসাস আমি ভেবেছিলাম আপনি দুটি ভিন্ন পন্থা সরবরাহ করছেন। আমি বুঝতে পারছি না আপনি বলছিল উভয় client_body_in_file_only এবং $http_<header>প্রয়োজন হবে। আমি এখন এটি পেতে।
jwadsack

5
আপনি কি আরও একটি সুনির্দিষ্ট কোড ভাগ করতে পারেন?
ভেলকান

3
অবশ্যই $ HTTP <শিরোনামটি কেবল তখনই কার্যকর যদি আপনি সমস্ত শিরোনামের নাম আগেই জানেন
এড র্যান্ডাল

2
দয়া করে কেউ এনজিনেক্স কনফিগারেশনের প্রকৃত টুকরা ভাগ করতে পারেন?
এখনকার

17

mitmproxy আপনি যা জিজ্ঞাসা করছেন তা করার জন্য সঠিক সরঞ্জাম বলে মনে হচ্ছে।

mitmproxy কনসোল ইন্টারফেস সহ HTTP- র জন্য একটি ইন্টারেক্টিভ, SSL- সক্ষম ম্যান-ইন-মিডল প্রক্সি xy

mitmdump হ'ল mitmproxy এর কমান্ড-লাইন সংস্করণ। HTTP- র জন্য tcpdump চিন্তা করুন।

বৈশিষ্ট্য

  • এইচটিটিপি অনুরোধ এবং প্রতিক্রিয়াগুলিকে বাধা দিন এবং এগুলি ফ্লাইতে সংশোধন করুন।
  • পরবর্তী পুনরায় প্লে এবং বিশ্লেষণের জন্য সম্পূর্ণ HTTP কথোপকথন সংরক্ষণ করুন।
  • কোনও HTTP কথোপকথনের ক্লায়েন্ট-সাইডটি পুনরায় খেলুন। পূর্ববর্তী রেকর্ড করা সার্ভারের HTTP প্রতিক্রিয়াগুলি পুনরায় খেলুন।
  • নির্দিষ্ট সার্ভারে ট্র্যাফিক ফরোয়ার্ড করতে প্রক্সি মোডটি বিপরীত করুন।
  • ওএসএক্স এবং লিনাক্সের স্বচ্ছ প্রক্সি মোড।
  • পাইথন ব্যবহার করে HTTP ট্র্যাফিকের স্ক্রিপ্টযুক্ত পরিবর্তনগুলি করুন Make
  • বাধা দেওয়ার জন্য এসএসএল শংসাপত্রগুলি উড়ন্তভাবে তৈরি করা হয়।

বিপরীত প্রক্সি মোড আপনাকে অনুরোধ এবং প্রতিক্রিয়া কাস্ট করতে দেয় ঠিক যেমন ফিডলারের মতো।

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