লোড ব্যালান্সারের পিছনে থাকাকালীন REMOTE_ADDR এর জন্য .htaccess RewriteCond?


9

লোড-ব্যালেন্সারের পিছনে আমার একটি ওয়েব সার্ভার রয়েছে।

যখনই আমরা রক্ষণাবেক্ষণের জন্য সাইটটি অফলাইনে রাখি তখন কোনও রক্ষণাবেক্ষণ পৃষ্ঠা প্রদর্শন করতে আমার আমার .htaccess এ শর্তযুক্ত পুনঃনির্দেশ যুক্ত করতে হবে। এই অংশটি সোজা:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]

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

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
RewriteCond %{REQUEST_URI} !/maintenance.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
RewriteRule .* /maintenance.php [R=302,L]

তবে, যেহেতু আমার ওয়েব সার্ভারটি লোড ব্যালান্সারের পিছনে REMOTE_ADDRরয়েছে, লোড ব্যালেন্স সার্ভারের অভ্যন্তরীণ আইপি ঠিকানার সমাধান করা হয়েছে।

ফরোয়ার্ড করা আইপি ঠিকানা খুঁজতে আমি কীভাবে এটি পরিবর্তন করতে পারি? আমি পিএইচপি তে জানি আপনি $_SERVER['HTTP_X_FORWARDED_FOR']ফরোয়ার্ড আইপি ঠিকানা পেতে ব্যবহার করতে পারেন । আমি কয়েকটি জিনিস চেষ্টা করেছি .htaccessতবে ভাগ্য নেই:

%{X_FORWARDED_FOR}
%{HTTP:X_FORWARDED_FOR}
%{HTTP_X_FORWARDED_FOR}

সমাধান

আমি কাজ করার জন্য নিম্নলিখিত পেয়েছি:

%{HTTP:X-FORWARDED-FOR}

% {HTTP: এক্স-ফরওয়ার্ড-ফর-হ'ল সঠিক। এটা কি সংবেদনশীল?
জেফ স্ট্রানক

সমস্ত ক্যাপস আমার পক্ষে কাজ করেছিল। আমি অনুমান করি এটি কেস সংবেদনশীল নয় অন্যথায় এটি একটি উপন্যাস বা কিছু।
জেক উইলসন

আপনি কি সত্যিই পরিবেশন করেন .jpeবা .jpফাইলগুলি?
7heo.tk

উত্তর:


10

%{HTTP:X-FORWARDED-FOR}পরিবর্তে ব্যবহার করুন%{REMOTE_ADDR}


আমি জানি আপনি ইতিমধ্যে আপনার প্রশ্নের উত্তর দিয়েছেন, তবে এর সাথে মিলে যাওয়ার উত্তর আপনার কাছে নেই। আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ! আজ আমাকে বাঁচাও।
রায়ান

2

আপনার মোড_আরপাফ দরকার । এই মডিউলটি অন্য হেডার যেমন এক্স-ফরওয়ার্ডড-এর সাথে অ্যাপাচে REMOTE_ADDR পুনর্লিখন করবে। পিএইচপি অ্যাপ্লিকেশন লোড ব্যালান্সারের সাথে আচরণ করার জন্য খুব দরকারী।



0

আপনার যদি দুটি পরিবেশ থাকে তবে লোড ব্যালেন্সের পিছনে একটি উত্পাদন এবং একটি বিকাশ বা লোড ব্যালেন্সের পেছনে না মঞ্চে বলুন এবং আপনি একই .htaccess ফাইলটি ব্যবহার করতে চান, আপনার উভয়% {HTTP: এক্স-ফরওয়ার্ড-ফর} এবং প্রয়োজন হবে %। REMOTE_ADDR} - উভয় শর্তে আইপি ঠিকানা বরাদ্দ করুন।


1
এছাড়াও, কিছু অ্যাপাচি সার্ভারে ব্যাকস্ল্যাশ সার্ভারকে বিভ্রান্ত করবে। সরলভাবে বলুন! ^ 123.123.123.123 (ব্যাকস্ল্যাশগুলি ছাড়া, এর অর্থ আইপি 123.123.123.123 নয়) যদি আপনি ব্যাকস্ল্যাশগুলি দিয়ে কাজ করতে পুনরাবৃত্তি না পেতে পারেন।
অ্যান্ড্রু এস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.