د سرور ویجاړولو په اړه د هیکر لوبې شالید څنګه رامینځته شوی

د سرور ویجاړولو په اړه د هیکر لوبې شالید څنګه رامینځته شوی
موږ تاسو ته دوام ورکوو چې څنګه زموږ د لیزر لټون د سرور ویجاړولو سره تنظیم شوی و. په تیرو کې پیل کړئ د لټون د حل په اړه مقاله.

په مجموع کې ، د لوبې شالید 6 معماري واحدونه درلودل ، کوم چې موږ به پدې مقاله کې تحلیل کړو:

  1. د لوبې ادارو شالید چې د لوبې میکانیزمونو لپاره مسؤل و
  2. په VPS کې د شالید او سایټ ډیټا تبادله بس
  3. د پس منظر غوښتنې (د لوبې عناصر) څخه Arduino او په سایټ کې هارډویر ته ژباړونکی
  4. Arduino، چې د ریلونو د کنټرول مسولیت درلود، د ژباړونکي څخه امرونه ترلاسه کړل او اصلي کار یې وکړ
  5. حقیقي وسایل: فین، ګلان، د فرش څراغونه، او نور.
  6. Frontend - پخپله د Falcon ویب پاڼه، له کوم څخه چې لوبغاړي وسایل کنټرولوي

راځئ چې د هر یو له لارې لاړ شو.

د لوبې ادارو شاته

بیکینډ د پسرلي بوټ غوښتنلیک په توګه پلي شوی و: دا ډیری آرام کنټرولرونه، د ویب ساکټ پای ټکی او د لوبې منطق سره خدمتونه درلودل.

یوازې درې کنټرولرونه وو:

  • میګاټرون اوسنۍ میګاټرون پاڼه د GET غوښتنو له لارې لیږل شوې: مخکې او وروسته د بریښنا د فعالولو څخه. لیزر د POST غوښتنې له لارې ډزې وکړې.
  • د ټیلډ پاڼو نقشه کول ترڅو دوی د پاڼې نوم سره خدمت وکړي. Tilde د صادرولو لپاره پاڼې د اصلي نومونو سره نه تولیدوي، مګر د داخلي ID او موافقت معلوماتو سره.
  • کیپچا کنټرولر د سیډو - لوړ بار سرور کیپچا خدمت کولو لپاره.

د ویب ساکټ پای ټکی د ګیجټونو کنټرول لپاره کارول کیده: څراغونه ، ګارلینډ او لیکونه. دا د ټولو لوبغاړو لپاره په همغږي ډول د وسیلې اوسنی حالت ښودلو لپاره غوره شوی: ایا دا فعال دی یا بند دی ، فعال دی یا نه ، اوس مهال په دیوال کې د لیک کوم رنګ روښانه شوی. د دې لپاره چې د لیزر فعالولو دنده یو څه نوره ستونزمنه کړي، موږ د ورته ننوتلو او پاسورډ اډمین/اډمین سره ګارلینډ او لیزر ته اجازه اضافه کړه.

لوبغاړي کولی شي دا د مالګې په بدلولو سره ازموینه وکړي او د لیزر سره ورته تکرار کړي.

موږ د دې لپاره یو کوچنی د ننوتلو پاسورډ جوړه غوره کړه ترڅو لوبغاړي د غیر ضروري انتخاب سره نه ځوروي.

د دې لپاره چې کار یو څه ډیر په زړه پوري کړي ، د مونګوډب څخه د اعتراض IDs په خونه کې د وسیلې پیژندونکي په توګه کارول شوي.

ObjectId یو مهال ویش لري: دوه تصادفي ارزښتونه، چې یو یې د وسیلې پیژندونکي پراساس اخیستل کیږي، او دوهم د پروسې د پیډ پراساس چې دا تولیدوي او کاونټر ارزښت. ما غوښتل چې پیژندونکي په منظم وقفونو کې او د مختلف pid پروسو سره رامینځته کړي ، مګر د یو عام کاونټر سره ، ترڅو د لیزر آلې پیژندونکي انتخاب ډیر په زړه پوري وي. په هرصورت، په پای کې، هرڅوک د پیژندونکو سره پیل وکړ چې یوازې د مقابل ارزښت کې توپیر درلود. دا ممکن ګام خورا ساده کړی وي او د ObjectId جوړښت تحلیل ته اړتیا نلري.

د پسمانده غوښتنو څخه ژباړونکی

د پایتون سکریپټ، چا چې په ټایمرونو کار کړی او د لوبو خلاصون څخه یې فزیکي ماډل ته ژباړلي. د مثال په توګه، "د فرش څراغ چالان کړئ" → "ریلی N2 چالان کړئ."

سکریپټ د RabbitMQ کتار سره وصل شوی او له قطار څخه Arduino ته غوښتنې لیږدول شوي. دې د موازي ر lightا بدلولو منطق هم پلي کړ: د ځینې وسیلو سره یوځای ، په دوی باندې ر lightا فعاله شوې ، د مثال په توګه ، کله چې په پیل کې میګاټرون ته بریښنا ورکړل شوه ، دا د سټیج ر lightا سره روښانه شوه. د ټولې صحنې د سینماګرافۍ لپاره د رڼا ډیزاین زموږ د پروژې شریک تولید کونکي او تولید ډیزاینر الیا سیروف د عالي کار په اړه جلا کیسه ده ، او موږ به یې په جلا پوسټ کې ووایو.

ژباړن د ټایمر په کارولو سره د شریډر پیلولو او تلویزیون ته د عکس لیږدولو منطق هم مسؤل و: د شریډر پیل کولو لپاره ټایمر ، چیغې کیپیبارا ، د لوبې په پای کې یو سوداګریز.

د میګاټرون ټوکن رامینځته کولو منطق څنګه تنظیم شوی و

ټیسټ شاټ

په هرو 25 ثانیو کې یو نوی ټوکن رامینځته شوی او د 10/10 بریښنا کې د 255 ثانیو لپاره لیزر فعالولو لپاره کارول کیدی شي. ته لینک ګیتوب د میګاټرون کوډ سره.

لیزر بیا د 1 دقیقې لپاره یخ شو - پدې وخت کې دا شتون نه درلود او د نوي شاټ غوښتنې یې ونه منل.

دا ځواک د رسی له لارې سوځولو لپاره کافي نه و ، مګر هر لوبغاړی کولی شي میګاټرون ډزې وکړي او لیزر بیم په عمل کې وګوري.

د MD5 هیشینګ الګوریتم د ټوکن تولید لپاره کارول شوی و. او سکیم کار وکړ MD5 د MD5 + counter + راز څخه د جنګي نښه لپاره او پرته د ازموینې نښه لپاره پټ.

MD5 یوې سوداګریزې پروژې ته اشاره ده چې پاول، زموږ ملاتړی، ترسره کړې. یوازې څو کاله دمخه دې پروژې MD5 کارولی و، او کله چې هغه د پروژې معمار ته وویل چې دا یو پخوانی کوډ کولو الګوریتم دی، دوی د MD5 څخه د MD5 کارول پیل کړل. له هغه وخته چې موږ پریکړه وکړه چې ترټولو غوره پروژه ممکنه کړو، هغه هرڅه یاد کړل او پریکړه یې وکړه چې یو کوچنی حواله جوړ کړي.

جنګي ډزې

د میګاټرون جنګي حالت په 100 واټ کې 3٪ لیزر ځواک دی. دا د 2 دقیقو لپاره کافي دی چې د رسی له لارې سوځول چې وزن یې درلود ، د ایکویریم ماتولو او سرور د اوبو سره سیلاب کولو لپاره.

موږ د پروژې په ګیتوب کې یو څو اشارې پریښودلې: د بیلګې په توګه، د ټوکن نسل کوډ، چې له هغې څخه یو څوک پوهیدلی شي چې ازموینه او د جنګي ټوکن د ورته کاونټر شاخص پراساس تولید شوي. د جنګي نښه په حالت کې، د کاونټر ارزښت سربیره، مالګه هم کارول کیږي، کوم چې د وروستیو دوو حروفونو په استثنا سره، د دې لنډیز بدلولو په تاریخ کې تقریبا په بشپړه توګه پاتې دی.

د دې معلوماتو په پوهیدو سره ، دا ممکنه وه چې د مالګې وروستي 2 سمبولونو له لارې ترتیب کړئ او واقعیا ومومئ چې له ورک شوي شمیرې ، د هیکساډیسیمل سیسټم ته بدل شوي ، د دې لپاره کارول شوي.

بیا لوبغاړو باید د کاونټر ارزښت (د ټیسټ نښه تحلیل کولو سره) ونیسئ او د راتلونکي کاونټر ارزښت او په تیر مرحله کې غوره شوي مالګې په کارولو سره جنګي نښه رامینځته کړئ.

کاونټر په ساده ډول د هر ټیسټ شاټ او هر 25 ثانیو سره وده کوي. موږ د دې په اړه هیڅ ځای نه دی لیکلی، دا باید د کوچني لوبې حیرانتیا وي.

د کیپچا متقابل عمل خدمت

د لوبو په نړۍ کې ، دا ورته کیپچا وه چې د فین د فعالولو او د اشارې سره فلیپ چارټ خلاصولو لپاره باید بار شوی و. د کیمرې تر څنګ یو لپ ټاپ و چې د بار نظارت سره.

د سرور ویجاړولو په اړه د هیکر لوبې شالید څنګه رامینځته شوی

خدمت ما محاسبه کړه چې په نظارت کې د اوسني بار په توګه څه ښودل کیږي: تودوخې او CPU فین. میټریکونه د وخت ډیټابیس ډیټابیس ته لیږدول شوي او د ګرافانا لخوا رسم شوي.

که په تیرو 5 ثانیو کې د کیپچا ښودلو لپاره له 50 څخه ډیر غوښتنې شتون ولري ، نو بار د ثابت + تصادفي ګامونو لخوا ډیر شوی. محاسبه دا وه چې 100٪ بار په دوه دقیقو کې ترلاسه کیدی شي.

په حقیقت کې ، په وروستي لوبې کې ښودل شوي په پرتله په خدمت کې ډیر منطق شتون درلود: موږ مانیټور په داسې ډول ځای په ځای کړ چې یوازې د CPU فین گردش څرګند و.

د لټون په پیل کې دوی غوښتل چې ګرافان د Falcon ویب پاڼې څخه د لاسرسي وړ پریږدي. مګر پدې کې د پسرلي بوټ میټریکونه هم شامل دي د بیک اینڈ غوښتنلیک راپور څخه ، کوم چې موږ د پاکولو لپاره وخت نه درلود ، نو موږ پریکړه وکړه چې دې ته لاسرسی بند کړو. او په سمه توګه - حتی د لټون په پیل کې، ځینې لوبغاړو اټکل وکړ چې غوښتنلیک د پسرلي بوټ چوکاټ کې لیکل شوی او حتی د ځینو خدماتو نومونه یې ایستلي.

کوربه او ډیټا بس

د بیک انډ څخه سایټ ته د معلوماتو لیږدولو لپاره وسیله، د VPS سرور په کوم کې چې RabbitMQ روان و.

شاته او ډیټا بس ساتل شوی و زموږ VPS. د دې ځواک د هغه کمپیوټر سره پرتله کولو وړ و چې تاسو یې په سکرین کې لیدلی و: یو 2 کور VPS د دوه ګیګابایټ رام سره. تعرفه د سرچینو لپاره اخیستل شوې وه ، ځکه چې د لوړ بار بار یوازې د څو ورځو لپاره پلان شوی و - دا هغه څه دي چې زموږ پیرودونکي د لنډې مودې لپاره د VPS بارولو پلان لري. بیا دا معلومه شوه چې بار زموږ د تمې څخه لوړ و، او یو ثابت تعرفه به ډیر ګټور وي. که تاسو لټون کوئ، د کرښې تعرفې غوره کړئ ټربو.

د DDoSa څخه د سرور ساتلو لپاره، موږ Cloudflare کارولی.

دا د ویلو وړ ده چې VPS هرڅه په عزت سره ودرول.

Arduino، چې د ریلونو د کنټرول مسولیت درلود، د ژباړونکي څخه امرونه ترلاسه کړل او اصلي کار یې وکړ

دا د پروژې د هارډویر برخې په اړه د راتلونکي مقالې موضوع نوره ده: پس منظر په ساده ډول د ځانګړي ریلي د فعالولو لپاره غوښتنې لیږلي. دا داسې پیښ شوي چې شالید نږدې ټول ارګانونه پیژني او له هغې څخه غوښتنې داسې ښکاري چې "دا اداره چالان کړئ." موږ دا د سایټ د لومړني ازموینې لپاره ترسره کړل (موږ لا تر اوسه ټول Arduino او ریلونه نه دي راټول کړي)، په پای کې موږ هر څه ورته پریښودل.

مخ اخری

موږ په چټکۍ سره په ټیلډ کې سایټ جوړ کړ، دا یوه کاري ورځ ونیوله او زموږ په بودیجه کې مو 30 زره خوندي کړل.

په پیل کې، موږ په ساده ډول د سایټ صادرولو او هغه منطق اضافه کولو فکر کاوه چې موږ یې ورک وو، مګر موږ د کارولو شرایطو ته ورسیدو چې موږ یې د دې کولو څخه منع کړي.

موږ د جواز څخه سرغړونې ته چمتو نه وو، نو دوه اختیارونه شتون لري: هرڅه پخپله پلي کول یا په مستقیم ډول د ټیلډا سره اړیکه ونیسئ، د پروژې په اړه خبرې وکړئ او د کوډ بدلولو اجازه وغواړئ.

موږ دویمه لاره غوره کړه او دوی نه یوازې موږ ته په نیمه لاره کې ولیدل، بلکې حتی موږ ته د وړیا سوداګرۍ حساب یو کال راکړ، چې موږ د دوی څخه ډیر منندوی یو. دا خورا عجیب و چې دوی ته د سوکول ویب پاڼې ډیزاین ښودل.

د پایلې په توګه، موږ ابتدايي وسیلو ته د غوښتنو لیږلو لپاره د js منطق د فرنټ اینډ سره ضمیمه کړ، او د لوبې عناصرو فعالولو او بندولو لپاره د بټونو سټایلونه یو څه بدل کړل.

د سایټ ډیزاین

د لټون تاریخ، کوم چې د جلا فصل ارزښت لري.

موږ غوښتل چې نه یوازې یو زوړ فیشن سایټ جوړ کړو، مګر یو خورا کرکه لرونکی سایټ چې د ډیزاین ټول اساسي قواعد سرغړونه کوي. په ورته وخت کې، د باور ساتلو لپاره دا مهمه وه: دا باید د ENT کیسه مات نه کړي، د لیکوال تعصب وښيي، او لوبغاړي باید باور ولري چې دا ډول سایټ شتون لري او حتی پیرودونکي راوړي. او هغه یې راوړه! پداسې حال کې چې لوبه روانه وه، موږ سره دوه ځله اړیکه ونیول شوه چې ویب پاڼې جوړې کړو.

په لومړي سر کې ما پخپله ډیزاین وکړ، هڅه یې کوله چې نور gifs او روښانه عناصر شامل کړم. مګر زما د 10 کلونو ډیزاینر میړه خپل اوږه ته وکتل او دا یې د "ډیر ښه" په توګه رد کړه. د ډیزاین قواعد ماتولو لپاره، تاسو باید دوی پوه شئ.

د سرور ویجاړولو په اړه د هیکر لوبې شالید څنګه رامینځته شوی

د رنګونو ډیری ترکیبونه شتون لري چې د کرکې دوامداره احساس رامینځته کوي: شنه او سور د مساوي بډایه ، خړ او ګلابي ، نیلي او نسواري. په نهایت کې ، موږ د اساس رنګونو په توګه د سور او شین په ترکیب کې میشته شو ، د پیشو سره gifs اضافه کړل او د سټاک عکس څخه پخپله د سوکولوف 3-4 عکسونه غوره کړل. ما یوازې یو څو اړتیاوې درلودې: یو متوسط ​​​​سړی چې یو نا مناسب سوټ یې اغوستی و څو څو اندازې خورا لوی او د "مسلکي سټوډیو عکس شوټ" پوز کې. د ازموینې لپاره، دوی دا ملګرو ته وښودله او پوښتنه یې وکړه "تاسو دا څنګه خوښوئ؟"

د ډیزاین د پراختیا په بهیر کې، زما میړه باید په هر نیم ساعت کې ویده شي؛ چورلکې الوتنه پیل کړه. پاشا هڅه وکړه چې د پراختیا کونکي کنسول ډیری سکرین ته خلاص کړي پداسې حال کې چې هغه د مخکنی پای پای ته رسولی و - د هغه د سترګو ساتنه.

حقیقي وسایل

فینونه او څراغونه د سالډ سټیټ ریلونو له لارې ایښودل شوي ترڅو سمدلاسه په بشپړ بریښنا کې نه وګرځي - ترڅو بریښنا د نظارت سره موازي وده وکړي.

مګر موږ به پدې اړه په راتلونکي پوسټ کې وغږیږو ، د لوبې هارډویر برخې او د سایټ ریښتیني ساختمان په اړه.

پاتې شه!

د سرور ویجاړولو لټون په اړه نورې مقالې

د سرور ویجاړولو په اړه د هیکر لوبې شالید څنګه رامینځته شوی

سرچینه: www.habr.com

Add a comment