HAproxy নিয়ে আমার সমস্যা আছে।
আমি HAproxy লোড ব্যালেন্সার হিসাবে ব্যবহার করি যা আগত HTTP অনুরোধগুলি 5 ওয়েব সার্ভারে বিতরণ করে। সাধারণত ক্লায়েন্টের অনুরোধটি লোডবালেন্সারের আইপি সহ ওয়েব সার্ভারগুলিতে ফরোয়ার্ড করা হয়। তবে আমার কাছে ক্লায়েন্টের আইপি বা সত্যিকারের আইপি দরকার যারা ওয়েব সার্ভার থেকে কোনও কিছুর জন্য অনুরোধ করেন। কারণ আমাদের বাস্তব ক্লায়েন্টের আইপিগুলি লগ করতে হবে।
আমি ওয়েব সার্ভারে ক্লায়েন্টের আইপিগুলি পাওয়ার চেষ্টা করি তবে আমি এখন পর্যন্ত সাফল্য পেতে পারি না। সর্বদা আমি লোড ব্যালেন্সারের আইপি দেখতে পাই।
আমি এক্স-ফরোয়ার্ড-এর বিকল্পটি ব্যবহার করি তবে এটি সমস্যার সমাধান হয় না। এর পরে আমি অন্য একটি বিকল্প " উত্স ০.০.০.০.০৮০ ব্যবহার করে সিআরসি ক্লায়েন্টিপ " পেয়েছি তবে এইচএপ্রাক্সি চালানোর চেষ্টা করার সময় আমি অস্থির হয়ে উঠি যা HAproxy এর USE_TPROXY বিকল্পের সাথে সংকলন প্রয়োজন। আমি এটি করেছি, আমি HAproxy কে USE_TPROXY বিকল্পের সাথে পুনরায় সংকলন করি তবে কিছুই পরিবর্তন হয় না। আসল ক্লায়েন্টের আইপি শিখতে আমি কী করতে পারি।
আমার লিনাক্স কার্নেল সংস্করণটি ২.6.৩২-৩৪ আমার অর্থ কার্নেলটি স্বচ্ছ প্রক্সি সমর্থন করে। এবং আমি ইউবুন্টু 10.4 এলটিএস ব্যবহার করি
আমার কনফিগারেশন ফাইল এখানে আছে
global
maxconn 100000
uid 99
gid 99
daemon
defaults
option forwardfor except 127.0.0.1
mode http
(1)source 0.0.0.0:80 interface hdr_ip(x-forwarded-for,-1)
(2)source 0.0.0.0:80 usesrc clientip
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen myWeb 0.0.0.0:80
mode http
balance source
option forwardfor header X-Client
option http-server-close
stats enable
stats refresh 10s
stats hide-version
stats scope .
stats uri /lb?stats
stats realm LB2\ Statistics
stats auth admin:xXx
server S1 192.168.1.117:80 check inter 2000 fall 3
server S2 192.168.1.116:80 check inter 2000 fall 3
server S3 192.168.1.118:80 check inter 2000 fall 3
(1) (2) এইচএপ্রসি পরীক্ষা করার সময় আমি এই দুটি লাইনের একটি ব্যবহার করেছি।
আমাদের সার্ভারের কাছ থেকে অনুরোধ করা ক্লায়েন্টদের আসল আইপি শিখতে কেউ কি আমাকে সহায়তা করছেন?