অবিরাম লোড ব্যালেন্সারগুলির সাথে কীভাবে কুকিজ কাজ করে


7

আমাদের একটি ড্রুপাল অ্যাপ্লিকেশন রয়েছে যা ব্যবহারকারীদের লগ ইন করতে এসএসও ব্যবহার করে।

আমরা এডাব্লুএস ক্লাসিক লোড ব্যালেন্সার (ইএলবি) ব্যবহার করছি, এডাব্লুএস আমাদের জানিয়েছে যে ইএলবিতে কোনও সেশনের অধ্যবসায় নেই।

আমি যা জানার চেষ্টা করছি সেটি হল কীভাবে ক্লাসিক লোড ব্যালান্সারগুলিতে কুকিগুলি অধ্যবসায়ের সাথে কাজ করে।

উদাহরণ ডটকম ডিএনএস ইএলবির দিকে নির্দেশিত। পুলটিতে সার্ভার 1 এবং সার্ভার 2 রয়েছে

আমরা যা হতে চাই তা হ'ল যদি কোনও ব্যবহারকারী তাদের http://example.com/user/12345/সার্ভার 1 এ তাদের হোম পৃষ্ঠাটি হিট করে তবে যদি তারা ইতিমধ্যে লগইন না করে থাকে তবে তারা এসএসও পৃষ্ঠায় পুনঃনির্দেশিত হয় http://example.com/user/login/sso, স্বয়ংক্রিয়ভাবে লগ ইন করে এবং একটি কুকি পেয়ে যায় SESS<hexnumber>এবং তারপরে পুনঃনির্দেশিত হয়http://example.com/user/12345/

আমাদের কোনও সেশন সার্ভার যুক্ত করার অনুমতি নেই (পুনরায়) গ্যারান্টিটি কী তা যে তারা উভয়ই পুনঃনির্দেশের জন্য সার্ভার 1 এ থাকবে।

'উদাহরণ.কম' -র প্রতিটি হিট দিয়ে আমার জ্ঞান অনুসারে ব্যবহারকারী সার্ভার 1 বা সার্ভার 2-এ শেষ হতে পারে।

আমার প্রশ্ন:

যদি তারা সার্ভার 1 তে কুকি পেয়ে থাকে এবং তারপরে সার্ভার 2 এ পুনঃনির্দেশিত হয় তবে সার্ভার 2 কীভাবে জানতে পারবে যে সার্ভার 1-তে কোনও কুকি ইতিমধ্যে সেই ব্যবহারকারীর কাছে বরাদ্দ করা হয়েছে?

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

উত্তর:


3

একটি কুকি সার্ভারে নয়, ব্রাউজারে সেট করা আছে। এটি কোনও ডোমেনে সীমাবদ্ধ এবং allyচ্ছিকভাবে ইউআরএলের একটি নির্দিষ্ট পাথ, সুতরাং যতক্ষণ না উভয় সার্ভার একই ডোমেন দ্বারা অ্যাক্সেস করা যায় ততক্ষণ কুকি থাকবে।

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

  • www.example.com উভয় সার্ভারকে নির্দেশ করে।
  • www1.example.com কেবল সার্ভার 1-এ নির্দেশ করে
  • www2.example.com কেবল সার্ভার 2-এ নির্দেশ করে

সরল (ইশ) পুনর্লিখনের নিয়ম এবং কুকিগুলির একটি সেট ব্যবহার করে ব্যবহারকারীকে তার পরে একটি নির্দিষ্ট সার্ভারে লক করা যায়, যাতে নিশ্চিত হয়ে যায় যে তার অধিবেশনটি স্থির থাকে।

এখানে আরও কিছু বিবরণ দেওয়া হল।

ডিএনএস:

  • উদাহরণ.কম একটি 1.1.1.1, এ 2.2.2.2
  • www.example.com সিএনএম উদাহরণ.কম
  • www1.example.com এ 1.1.1.1
  • www2.example.com এ 2.2.2.2

পুনরায় লেখার নিয়ম:

  • জেদী কুকি: "ব্যাকএন্ড"
  • প্রাথমিক সংযোগ: "ব্যাকএন্ড" সংজ্ঞায়িত নয়, "ব্যাকএন্ড" কে www1 বা www2 এ সেট করুন, তার উপর নির্ভর করে কোন সার্ভার উত্তর দিয়েছে এবং সেই সার্ভারে পুনঃনির্দেশিত হয়েছে। কুকি অবশ্যই "উদাহরণ.com" ডোমেইনে সেট করতে হবে, এইভাবে এটি www1 এবং www2 উভয়ই লোড করা হবে
  • যদি "ব্যাকএন্ড" সংজ্ঞায়িত করা হয় তবে নিশ্চিত হয়ে নিন যে এর মানটি সার্ভারের সাথে মেলে এবং প্রয়োজনে পুনঃনির্দেশ করুন।
  • সেশনের কুকিটি সার্ভারের পুরো ডোমেন নামেই সংজ্ঞায়িত হয়েছে তা নিশ্চিত করুন - এটি www1.example.com বা www2.example.com

পুনর্লিখনের যুক্তিটি ওয়েব সার্ভারেই সংজ্ঞায়িত করতে হয়। সমস্ত আধুনিক ওয়েব সার্ভারগুলিতে খুব বৈশিষ্ট্যযুক্ত পুনর্লিখনের ভাষা রয়েছে যা এই কার্যকারিতা বাস্তবায়নে পুরোপুরি সক্ষম।


আমি উদাহরণ 1.com এবং উদাহরণ2.com সম্পর্কে ভেবেছি তবে তাদের ব্যবহারকারীর উদাহরণস্বরূপ ডটকম বা উদাহরণ 2.com ব্যবহার করার কথা আমাকে জানার অনুমতি নেই তবে কুকিজ এবং ব্রাউজারগুলি কীভাবে কাজ করে সে সম্পর্কে এটি পরিষ্কার ধারণা ছাড়াই চিন্তা করা হয়েছিল, তাই চেষ্টা করার ক্ষেত্রে কিছুটা ব্যাক এন্ড ম্যাজিক হয়ে যাওয়ার মুখ রক্ষা করতে। example.comযদি ব্যবহারকারীরা কুকি পান তবে আমি কীভাবে এটি ব্যবহার করতে পারি তা www1.example.com বা www2.example.com এ রাখুন?
ডোনা ডিলোর

আমি আমার উত্তর আপডেট করেছি

0

আপনি যদি এলাস্টাস্টি রেডিসের মতো সেশন ম্যানেজমেন্ট ডাটাবেস ব্যবহার করতে না পারেন (কেবল সেশনের জন্য রেডিস প্রতি মাসে 15 ডলারের বেশি দাম পড়বে না), তবে পরবর্তী সেরা বিকল্পটি হল ইএলবিতে স্টিকি সেশন সক্ষম করা;

https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-sticky-sessions.html

এটি ব্যবহারকারীদের পুরো সেশনে একই ব্যাকএন্ড নোডে যেতে বাধ্য করবে। একটি "লোড ব্যালেন্সার উত্পন্ন কুকি" এর জীবনকাল 900 সেকেন্ডের জন্য যথেষ্ট ভাল হওয়া উচিত তবে আপনি এটি টুইট করতে পারেন।

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