অ্যাপাচি Mod_remoteip এবং অ্যাক্সেস লগ


9

অ্যাপাচি ২.৪ যেহেতু আমি ফ্রন্টএন্ড সার্ভার (বার্নিশ, স্কুইড, অ্যাপাচি ইত্যাদি) দ্বারা সরবরাহিত এক্স-ফরোয়ার্ড থেকে ক্লায়েন্টের ঠিকানা পুনর্লিখনের জন্য মোড_সেক্সট্র্যাক্ট -ফরওয়ার্ডের পরিবর্তে মোড_মোটিটিপ ব্যবহার শুরু করেছি ।

এখনও পর্যন্ত মডিউলগুলির সাথে সবকিছু ঠিকঠাক কাজ করে, যেমন পিএইচপি, সিজি, ডাব্লুএসজি ইত্যাদি ... - ক্লায়েন্টের ঠিকানাগুলি যেমন হওয়া উচিত তেমন প্রদর্শিত হয়, তবে আমি অ্যাক্সেস লগগুলিতে ক্লায়েন্টের ঠিকানা লিখতে পারি না (% a,% h,% {c } একটি)। ভাগ্য নেই - আমি সর্বদা 127.0.0.1 পাচ্ছি (লোকালহোস্ট ফরোয়ার্ড প্রাক্তন)।

Mod_remoteip ব্যবহার করার সময় ক্লায়েন্টের আইপি ঠিকানাটি কীভাবে লগ করবেন?

আপডেট: আইটি ওয়ার্কস ও_ও - নীচে উত্তর দেখুন


আপনি যে নির্দিষ্ট কনফিগারটি ব্যবহার করেছেন / পরীক্ষা করেছেন তা আপনি যুক্ত করতে চাইতে পারেন। উপরন্তু, যখন বিবরণ না, এই শক্তি সহায়তা: knowledgevoid.com/blog/2012/01/13/... আমি অনুমান আপনি পড়তে হয়নি httpd.apache.org/docs/trunk/mod/mod_remoteip.html#page-header aswell? স্ট্যাকেক্সচেঞ্জের কয়েকটি প্রশ্ন রয়েছে যা আপনি পড়তে চাইতে পারেন: stackoverflow.com/questions/25455731/…
ডেনিস নোল্টে

পুনর্নির্মাণ কনফিগারেশন, এখন এটি
ও_ও

উত্তর:


20

বার্নিশ কনফিগারেশন:

if (req.restarts == 0) {
    if (req.http.X-Forwarded-For) {
        set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
    } else {
        set req.http.X-Forwarded-For = client.ip;
    }
}

অ্যাপাচি ২.৪ কনফিগারেশন বিভাগ:

mod_remoteip:

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/8

লগিং (% a কাজটি করে):

LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

+ +

যদি সামনে কোনও এনগিনেক্স থাকে (উদা। এসএসএল সমাপ্তি):

server {
    listen       123.123.123.123:443;
    server_name  server.com;
    root         html;

    ssl                  on;
    ssl_certificate      /etc/pki/httpd/site/chain.crt;
    ssl_certificate_key  /etc/pki/httpd/site/private.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        proxy_pass   http://127.0.0.1:6081;
        proxy_set_header Host $http_host;
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

1
আপনি যদি এই উত্তরটি স্বীকার করেন তবে আপনার নিজের উত্তরটি হলেও আপনার অনুগ্রহ করা উচিত।
এমসি 0 ই

আপনি কি দয়া করে এটি আপডেট করবেন, বা আমাদের ক্লাউডফ্লেয়ার থেকে http.cf- সংযোগ-আইপি-র জন্য প্রকরণ দিন? দুঃখিত, দুঃখিত এটি কাজ করে না।
রুসলান আবুজান্ট

আপনার প্রকৃতপক্ষে Nginx এক্স-ফরওয়ার্ড-ফর জন্য $ রিমোট_এডিড্রির পরিবর্তে $ প্রক্সি_এডিডি_এক্স_ফরওয়ার্ড_এর জন্য ব্যবহার করা উচিত এটি বার্নিশ উদাহরণের মতো একই কার্যকারিতাটি সম্পাদন করে, যেখানে $ রিমোট_আড্ডারে পূর্ববর্তী এক্স-ফরওয়ার্ড-ফর মানগুলি অন্তর্ভুক্ত করা হয় না
অ্যান্ডি

4

Mod_remoteip এর ডকুমেন্টেশন অনুসারে, মডিউলটিকে কেবল ক্লায়েন্টের আইপি ঠিকানাটি প্রতিস্থাপন করা উচিত, তবে কেবল তখন RemoteIPHeader x-forwarded-for( ডক ) সেট করা থাকে । এছাড়াও নিশ্চিত হন, আপনার ভোস্টের লগিং আপনার সংজ্ঞায়িত কাস্টমলগটি ব্যবহার করে।

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