আমার পরিবেশে ব্যবহারকারীর অনুরোধগুলি বেশ কয়েকটি সিস্টেমের মধ্য দিয়ে যাচ্ছে:
[ক্লায়েন্ট] -> [ইএলবি] ---> [এনগিনেক্স] -> [ওয়েব]
(ELB = এডাব্লুএস ইলাস্টিক লোড ব্যালেন্সার)
এই উত্তরের জন্য ধন্যবাদ , আমার কাছে এনজিন্স সঠিক ক্লায়েন্টের আইপি ঠিকানাটি X-Forwarded-For
এবং X-Real_IP
হেডারগুলির সাথে আপস্ট্রিম সার্ভারগুলিতে (ওয়েব) নির্ধারণ এবং পাস করে দিচ্ছি । সম্পর্কিত nginx কনফিগারেশন:
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
আমার সমস্যাটি হ'ল এনজিনেক্সে রিয়েল আইপি মডিউলটি তার গণনার ফলাফলের সাথে বিদ্যমান পরিবর্তনশীলকে প্রতিস্থাপন করে । এটি আমাকে উত্সাহী ক্লায়েন্ট আইপি দেয় তবে আমি সেই সিস্টেমের আইপি ঠিকানাটি হারাচ্ছি যা প্রক্সিটির অনুরোধটি প্রকৃতপক্ষে প্রেরণ করেছে (অর্থাত্ ইএলবি)।$remote_addr
X-Forwarded-For
সামগ্রিকভাবে, ক্লায়েন্টের আইপি থাকা আমার কাছে আরও গুরুত্বপূর্ণ, তবে আমি অনুরোধগুলির সম্পূর্ণ চেইনে লগ করতে সক্ষম হতে চাই যাতে আমি বুঝতে পারি (এবং ডিবাগ) কীভাবে ট্র্যাফিক প্রবাহিত হচ্ছে। বর্তমানে, আমি কেবল ক্লায়েন্টের আইপি, তার নিজস্ব আইপি এবং আপস্ট্রিম সার্ভার আইপিতে এনগিনেক্স রাখতে পারি। আমি ELB আইপি লগ করতে সক্ষম হতে চাই।
আমি দেখছি এক্স-ইশনেশন 2013 সালে একই প্রশ্ন জিজ্ঞাসা করেছিল , খুব কম ভাগ্য নিয়ে। এরপরে কি কিছু পরিবর্তন হয়েছে বা উন্নত হয়েছে?
$realip_remote_addr
। এটি সুন্দরভাবে কাজ করে। আসলে কাজ proxy_protocol পেতে চেষ্টা এবং জন্য 1.9.7 nginx প্যাচ নোট উপর এসেছিলেন