শিরোনামে এটি যা বলে তা করার চেষ্টা করছে: উচ্চতর লোডের অধীনে বিদ্যমান সেশনগুলি ধরে রাখুন এবং সদ্য আগত দর্শনার্থীদের জন্য 503-বার্তা সরবরাহ করুন।
সমস্যা: এটি কাজ করে, তবে সেশনগুলি প্রায় 90 সেকেন্ডের বেশি স্থায়ী হয় না।
বর্তমান ফলাফলগুলি আমাকে ভাবছে যে কোনও সময়-নির্ধারিত সেটিংটি আমি অনুপস্থিত রয়েছি কিনা।
উদ্দেশ্য
আমি এখানে হাইপ্রক্সি পাওয়ার চেষ্টা করছি:
- সীমান্তে সেশনের মোট সংখ্যা একটি নির্দিষ্ট প্রান্তিকের নীচে থাকলে নতুন সেশনের জন্য অনুরোধগুলি ব্যাকএন্ড -001 এ প্রেরণ করুন।
- সীমান্তে সেশনগুলির সংখ্যা যখন প্রান্তিকের উপরে হয় তখন নতুন সেশনে 503 ত্রুটি সরবরাহ করে
- সেশনের সংখ্যা প্রান্তিক ছাড়িয়ে গেলেও বিদ্যমান সেশনের জন্য অনুরোধগুলিকে অনুমতি দিন
এইভাবে, বহু-পদক্ষেপের ফর্ম পূরণের মাঝামাঝি দর্শনার্থীরা 503-ত্রুটি দ্বারা অবাক হবে না এবং নতুন দর্শকদের বলা যেতে পারে "দয়া করে পরে ফিরে আসুন কারণ আমরা এখনই সত্যই ব্যস্ত"।
সেটআপ
সেটআপটি নিম্নরূপ:
{visitors}
↓
[haproxy]
↓
[rails app on unicorn served by nginx] (right now just one
backend: 'backend-001')
বর্তমান পদ্ধতির
উপরেরটি অর্জনের জন্য, আমি নীচে কনফিগারেশন ব্যবহার করছি।
পরীক্ষাটি সহজ করার জন্য এটি একটি খুব কম সীমা (প্রথম প্রান্তে 10 টি সংযোগ (fe_conn জিটি 10)) পরীক্ষার জন্য।
সার্ভারটিকে কিছু বোঝার নিচে রাখার জন্য, আমি নীচে httperf ব্যবহার করছি:
httpsf - হোগ - সার্ভার স্টেজিং.ম্যাচাইন.টल्ड --উরি / ডু সোম_থিংস - মূল্য = 500,10,30 - হার 2
global
daemon
maxconn 10000
defaults
mode http
timeout connect 6s
timeout client 60s
timeout server 60s
balance roundrobin
option http-server-close
frontend http-in
bind [PUBLIC_IP]:80
default_backend backend-001
acl too_many fe_conn gt 10
use_backend b_too_many if too_many
backend backend-001
fullconn 10
appsession _session_id len 128 timeout 7200s
cookie SERVERID insert maxidle 7200s
server Server1 127.0.10.1:80 cookie backend-001 check
backend b_too_many
errorfile 503 /var/www/50x.html
সমস্যা
উপরে উল্লিখিত হিসাবে, সমস্যাটি হ'ল: এটি প্রায় কাজ করে তবে সেশনগুলি প্রায় 90 সেকেন্ডের বেশি স্থায়ী হয় না।
আপনি যদি প্রায় ক্লিক করতে থাকেন তবে 10 সেশন ব্যস্ত থাকাকালীন আপনার সেশনটি রাখতে হবে।
অন্য কোনও ব্রাউজারের উদাহরণ সহ সার্ভারে একটি পৃষ্ঠা খোলার চেষ্টা করলে আপনি 503 ত্রুটি পাবেন।
সুতরাং, দেখে মনে হচ্ছে আমি প্রায় আছি। কারও কি ধারণা আছে যে সংক্ষিপ্ত অধিবেশনটির কারণ হতে পারে?
এবং বিশেষত আমি কীভাবে এটি ঠিক করতে পারি :)
(সম্পাদনা করুন: 'সার্ভার'-লাইন থেকে 'ওজন 1 ম্যাক্সকন 10' সরানো হয়েছে, প্রাসঙ্গিক নয় এবং বিভ্রান্ত হতে পারে) (দ্বিতীয়টি সম্পাদনা করুন: সামনের দিকে প্রান্তে '10 সেশনগুলি 'ফ্রন্ট-এন্ডে 10 সংযোগে')