OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلولد کنفرانس د راپور متن یو ځل بیا خپروو لوړ لوډ++ 2016، چې د تېر کال د نومبر په 7-8 مسکو ته نږدې په Skolkovo کې ترسره شو. ولادیمیر پروتاسوف د OpenResty او Lua سره د NGINX فعالیت پراخولو څرنګوالی تشریح کوي.

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

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

زه له 20 څخه ډیر د پروګرام کولو ژبې پوهیږم. دا هغه څه دي چې ما باید په ګوته کړي لکه څنګه چې ما کار کاوه. دوی تاسو ته په ایرلینډ ، C ، C ++ ، Lua ، Python ، روبي ، بل څه کې کوډ درکوي ، او تاسو باید دا ټول پرې کړئ. په عمومي توګه، زه باید. د دقیق شمیر محاسبه ممکنه نه وه، مګر د 20 په شاوخوا کې شمیره ورکه شوه.

څرنګه چې هر څوک پوهیږي چې موازي څه شی دی او موږ څه کوو، زه به په دې اړه خبرې ونه کړم چې موږ څومره ښه یو او څه کوو. زه به تاسو ته ووایم چې موږ په ټوله نړۍ کې 13 دفترونه لرو، له 300 څخه ډیر کارمندان، په مسکو، تالین او مالټا کې پراختیا. که تاسو وغواړئ، تاسو کولی شئ دا واخلئ او مالټا ته لاړ شئ که چیرې په ژمي کې یخ وي او تاسو اړتیا لرئ خپل شا ګرم کړئ.

په ځانګړې توګه، زموږ څانګه په Python 2 کې لیکي. موږ په سوداګرۍ کې یو او د فیشن ټیکنالوژیو پلي کولو لپاره هیڅ وخت نلرو، نو موږ ځوریږو. موږ جینګو کاروو ځکه چې دا هرڅه لري، او موږ هغه څه واخیستل چې غیر ضروري وو او هغه یې وغورځول. همدارنګه MySQL، Redis او NGINX. موږ نور ډیر ښه شیان هم لرو. موږ MongoDB لرو، موږ خرگوش لرو چې شاوخوا ګرځي، موږ هرڅه لرو - مګر دا زما نه دی، او زه یې نه کوم.

OpenResty

ما د خپل ځان په اړه وویل. راځئ چې پوه شو چې زه نن د څه په اړه خبرې کوم:

  • OpenResty څه شی دی او د څه شی سره خوړل کیږي؟
  • ولې بل څرخ بیا ایجاد کړئ کله چې موږ Python، NodeJS، PHP، Go او نور په زړه پوري شیان لرو چې هرڅوک ورسره خوښ وي؟
  • او د ژوند څخه یو څو مثالونه. ما باید راپور ډیر کم کړم ځکه چې دا ما 3,5 ساعته وخت نیولی، نو دلته به لږ مثالونه وي.

OpenResty NGINX دی. د هغه څخه مننه، موږ یو بشپړ ویب سرور لرو چې ښه لیکل شوی او په چټکۍ سره کار کوي. زه فکر کوم چې موږ ډیری په تولید کې NGINX کاروو. تاسو ټول پوهیږئ چې هغه ګړندی او ښه دی. دوی په دې کې ښه همغږي I/O جوړ کړی، نو موږ اړتیا نلرو چې هیڅ شی بایسکل وکړو، لکه څنګه چې دوی په پایتون کې جیوینټ کړی. جیوینټ ښه ، عالي دی ، مګر که تاسو د C کوډ ولیکئ او یو څه غلط شي ، نو د جیوینټ سره به تاسو د دې ډیبګ کولو لیونۍ شئ. ما تجربه درلوده: دا دوه ورځې وخت ونیول ترڅو معلومه کړي چې هلته څه غلط شوي. که چا د څو اونیو لپاره شاوخوا نه وی کیندلی، ستونزه یې موندلې، په انټرنیټ کې یې لیکلي، او ګوګل یې نه و موندلی، نو موږ به په بشپړ ډول لیونۍ شوي وای.

NGINX لا دمخه کیچنګ او جامد مینځپانګه ترسره کړې. تاسو اړتیا نلرئ د دې په اړه اندیښنه ولرئ چې دا څنګه په انساني ډول ترسره کړئ ، ترڅو تاسو په کوم ځای کې سست نه شئ ، ترڅو تاسو چیرې تشریح کونکي له لاسه ورنکړئ. نګینکس د ځای په ځای کولو لپاره خورا اسانه دی ، تاسو اړتیا نلرئ فکر وکړئ چې څه باید واخلئ - WSGI، PHP-FPM، Gunicorn، Unicorn. نګینکس نصب شوی، مدیرانو ته ورکړل شوی، دوی پوهیږي چې څنګه ورسره کار وکړي. نګینکس په منظم ډول غوښتنې پروسس کوي. زه به په دې اړه لږ وروسته خبرې وکړم. په لنډه توګه، دا یو پړاو لري کله چې دا یوازې غوښتنه ومنله، کله یې دا پروسس کړه، او کله چې دا کاروونکي ته محتويات وړاندې کوي.

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

  • اندازه. دا کوچنی دی. LuaJIT شاوخوا 100-200 کیلوبایټ حافظه د سر سر او لږترلږه فعالیت ورکوي.
  • چټک. د LuaJIT ژباړونکی په ډیری حاالتو کې C ته نږدې دی، په ځینو حاالتو کې دا جاوا ته له لاسه ورکوي، په نورو کې دا غوره کوي. د یو څه وخت لپاره دا د هنر حالت وګڼل شو، د JIT ترټولو غوره تالیف کونکی. اوس یخونه شتون لري، مګر دوی خورا دروند دي، د بیلګې په توګه، ورته V8. ځینې ​​​​JS ژباړونکي او Java HotSpot په ځینو ټکو کې چټک دي، مګر په ځینو ځایونو کې دوی لاهم له لاسه ورکوي.
  • د زده کړې لپاره اسانه. که تاسو د پرل کوډ اساس لرئ، ووایاست، او تاسو بک نه کوئ، تاسو به د پرل پروګرام کونکي ونه مومئ. ځکه چې دوی شتون نلري، دوی ټول ایستل شوي، او دوی ته درس ورکول اوږد او ستونزمن دی. که تاسو د بل څه لپاره پروګرام کونکي غواړئ، تاسو ممکن دوی بیا وروزل یا یې ومومئ. د لوا په قضیه کې، هرڅه ساده دي. هر ځوان کولی شي لوا په دریو ورځو کې زده کړي. ما شاوخوا دوه ساعته وخت ونیو چې دا معلومه کړم. دوه ساعته وروسته زه لا دمخه په تولید کې کوډ لیکم. شاوخوا یوه اونۍ وروسته هغه مستقیم تولید ته لاړ او لاړ.

د پایلې په توګه، دا داسې ښکاري:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

دلته ډیر څه دي. OpenResty د ماډلونو یوه ډله راټوله کړې، دواړه لوش او انجن. او تاسو هرڅه چمتو یاست - ځای پرځای شوي او کار کوي.

مثالونه

د غزلونو کافي دي، راځئ چې کوډ ته لاړ شو. دلته یو کوچنی سلام نړۍ ده:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

هلته څه شی دی؟ دا د انجن ځای دی. موږ اندیښنه نلرو، موږ خپله لاره نه لیکو، موږ یو څه چمتو شوي نه اخلو - موږ دا دمخه په NGINX کې لرو، موږ یو ښه او سست ژوند کوو.

content_by_lua_block یو بلاک دی چې وايي چې موږ د لوا سکریپټ په کارولو سره مینځپانګې خدمت کوو. موږ د انجن متغیر اخلو remote_addr او دننه یې واچوه string.format. دا په ورته ډول دی sprintfیوازې په لوا کې، یوازې سم. او موږ یې پیرودونکي ته ورکوو.

د پایلې په توګه، دا به داسې ښکاري:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

مګر راځئ چې ریښتینې نړۍ ته راستون شو. هیڅوک تولید ته هیلو ورلډ نه ګماري. زموږ غوښتنلیک معمولا ډیټابیس یا بل کوم ځای ته ځي او ډیری وخت ځواب ته انتظار کوي.

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

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

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

دوه لینونه تاسو ته اجازه درکوي د GET پیرامیټونه غوره کړئ ، هیڅ پیچلتیا نلري. بیا ، راځئ چې ووایو ، د ډیټابیس څخه د کلیدي کلمې او توسیع لپاره نښه سره ، موږ دا معلومات د منظم SQL پوښتنې په کارولو سره ترلاسه کوو. دا ساده ده. دا داسې ښکاري:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

د کتابتون سره نښلول resty.mysql، کوم چې موږ دمخه په کټ کې لرو. موږ هیڅ شی نصبولو ته اړتیا نلرو، هرڅه چمتو دي. موږ په ګوته کوو چې څنګه د SQL پوښتنې سره وصل او جوړ کړو:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

دلته یو څه ویره ده، مګر هرڅه کار کوي. دلته 10 حد دی. موږ 10 ننوتل راوباسي، موږ سست یو، موږ نه غواړو نور ښکاره کړو. ما په SQL کې د حد په اړه هیر کړی.

بیا موږ د ټولو پوښتنو لپاره عکسونه ومومئ. موږ د غوښتنو یوه ډله راټولوو او د لوا میز په نوم ډک کوو reqs، او موږ یې کوو ngx.location.capture_multi.

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

دا ټولې غوښتنې موازي لیږل شوي، او ځوابونه موږ ته راستانه شوي. عملیاتي وخت د ورو ورو ځواب وخت سره مساوي دی. که موږ ټول په 50 ملی ثانیو کې ډزې وکړو، او موږ سل غوښتنې لیږو، نو موږ به په 50 ملی ثانیو کې ځواب ترلاسه کړو.

له هغه ځایه چې موږ سست یو او نه غواړو چې د HTTP او کیشینګ اداره کول ولیکئ ، نو موږ به NGINX زموږ لپاره هرڅه ترسره کړو. لکه څنګه چې تاسو ولیدل، د دې لپاره غوښتنه وه url/fetch، هغه دلته دی:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

موږ یې ساده کوو proxy_pass، موږ په ګوته کوو چې چیرې زیرمه کړو ، دا څنګه وکړو ، او هرڅه زموږ لپاره کار کوي.

مګر دا کافي ندي ، موږ لاهم اړتیا لرو چې کارونکي ته معلومات ورکړو. ترټولو ساده نظر دا دی چې په JSON کې هرڅه په اسانۍ سره په دوه لینونو کې سیریل کړئ. موږ د مینځپانګې ډول ورکوو، موږ JSON ورکوو.

مګر یو مشکل شتون لري: کارونکي نه غواړي JSON ولولي. موږ اړتیا لرو د مخکښې پای پراختیا کونکي راجلب کړو. ځینې ​​​​وختونه موږ نه غواړو دا په لومړي سر کې وکړو. او د SEO متخصصین به ووایي چې که موږ د عکسونو په لټه کې یو، نو دا دوی ته مهمه نده. او که موږ دوی ته ځینې محتويات ورکړو، دوی به ووایي چې زموږ د لټون انجنونه هیڅ شی نه لیکي.

په دې اړه څه وکړي؟ البته، موږ به کاروونکي ته HTML ورکړو. د لاس په واسطه تولید کول غلط نه دي، نو موږ غواړو د ټیمپلیټونو څخه کار واخلو. د دې لپاره یو کتابتون شتون لري lua-resty-template.

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

تاسو شاید درې ډارونکي لیکونه OPM لیدلي وي. OpenResty د خپل کڅوړې مدیر سره راځي، د کوم له لارې تاسو کولی شئ د مختلف ماډلونو ډله نصب کړئ، په ځانګړې توګه، lua-resty-template. دا یو ساده ټیمپلیټ انجن دی، د جینګو ټیمپلیټونو ته ورته دی. هلته تاسو کولی شئ کوډ ولیکئ او متغیر بدیل ترسره کړئ.

د پایلې په توګه، هر څه به داسې ښکاري:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

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

هرڅه ښه دي، مګر موږ د پراختیا په حال کې یو او نه غواړو چې دا کاروونکو ته وښیو. اجازه راکړئ اجازه راکړئ. د دې کولو لپاره، راځئ وګورو چې څنګه NGINX د OpenResty شرایطو کې غوښتنه اداره کوي:

  • لومړی پړاو - لاس رسی، کله چې کارن یوازې راورسیده، او موږ هغه ته د سرلیکونو، د IP پتې، او نورو معلوماتو په واسطه وکتل. موږ کولی شو سمدلاسه دا پرې کړو که موږ یې نه خوښوو. دا د اختیار لپاره کارول کیدی شي، یا که موږ ډیری غوښتنې ترلاسه کړو، موږ کولی شو په اسانۍ سره په دې مرحله کې پرې کړو.
  • بیا لیکل. موږ د غوښتنې ځینې معلومات بیا لیکو.
  • محتوا. موږ کارونکي ته مواد وړاندې کوو.
  • سرلیکونه فلټر. موږ د ځواب سرلیکونه بدلوو. که موږ کارول proxy_pass، موږ کولی شو ځینې سرلیکونه د کارونکي ته د ورکولو دمخه بیا ولیکئ.
  • د بدن فلټر. موږ کولی شو بدن بدل کړو.
  • log - ننوتل. تاسو کولی شئ پرته له اضافي پرت څخه په elasticsearch کې لاګونه ولیکئ.

زموږ واک به داسې ښکاري:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

موږ به دا په دې کې اضافه کړو location، کوم چې موږ دمخه تشریح کړی ، او لاندې کوډ یې هلته کیښود:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

موږ ګورو چې ایا موږ د کوکی نښه لرو. که نه، نو موږ د واک غوښتنه کوو. کاروونکي چالاک دي او اټکل کولی شي چې دوی د کوکی نښه تنظیم کولو ته اړتیا لري. له همدې امله، موږ به دا په Redis کې هم واچوو:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

د Redis سره د کار کولو کوډ خورا ساده دی او د نورو ژبو څخه توپیر نلري. په ورته وخت کې، دلته او هلته ټول ان پټ/آؤټ پټ، نه بندوي. که تاسو همغږي کوډ ولیکئ، دا په غیر متناسب ډول کار کوي. تقریبا د جیوینټ په څیر، مګر ښه ترسره شوی.

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

راځئ چې اجازه پخپله ترسره کړو:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

موږ وایو چې موږ د غوښتنې بدن لوستلو ته اړتیا لرو. موږ د POST دلیلونه ترلاسه کوو او ګورو چې ننوتل او پټنوم سم دي. که دوی غلط وي، نو موږ تاسو ته د واک ورکولو لپاره ننګونه کوو. او که سم وي، نو په Redis کې نښه ولیکئ:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

د کوکي تنظیم کول مه هیروئ، دا هم په دوه لینونو کې ترسره کیږي:

OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

مثال ساده او قیاس دی. البته، موږ به داسې خدمت ونه کړو چې خلکو ته پیشوګانې وښيي. مګر څوک موږ پیژني. نو راځئ چې په تولید کې څه ترسره کیدی شي.

  • لږترلږه پس منظر. ځینې ​​​​وختونه موږ اړتیا لرو چې بیک انډ ته یوازې یو څه ډیټا تولید کړو: چیرې چې موږ اړتیا لرو نیټه دننه کړو ، چیرې چې موږ اړتیا لرو یو لیست ښکاره کړو ، ووایو چې اوس په سایټ کې څومره کارونکي دي ، کاونټر یا احصایې ضمیمه کړئ. یو څه دومره کوچنی. ځینې ​​​​لږ تر لږه ټوټې په اسانۍ سره جوړ کیدی شي. دا به دا چټک، اسانه او عالي کړي.
  • د معلوماتو دمخه پروسس کول. ځینې ​​​​وختونه موږ غواړو چې زموږ په پاڼه کې اعلانونه شامل کړو، او موږ دا اعلانونه د API غوښتنو په کارولو سره ترلاسه کوو. دا دلته کول خورا اسانه دي. موږ خپل شاته نه پورته کوو ، کوم چې دمخه ناست دی او سخت کار کوي. تاسو کولی شئ دا واخلئ او دلته یې راټول کړئ. موږ کولی شو یو څه JS سره یوځای کړو یا په برعکس، دا یو ځای کړو او مخکې له دې چې کاروونکي ته یې ورکړو یو څه پری پروسس کړو.
  • د مایکرو سرویس لپاره مخ. دا هم خورا ښه قضیه ده، ما دا پلي کړه. له دې وړاندې، ما په Tenzor کې کار کاوه، یو شرکت چې د بریښنایی راپور ورکولو سره معامله کوي او په هیواد کې نږدې نیمایي قانوني ادارو ته راپور ورکوي. موږ یو خدمت رامینځته کړی ، ډیری شیان د ورته میکانیزم په کارولو سره ترسره شوي: لار کول ، واک ورکول او نور ډیر څه.
    OpenResty ستاسو د مایکرو خدماتو لپاره د ګلو په توګه کارول کیدی شي ، هرڅه ته یو واحد لاسرسی او یو واحد انٹرفیس چمتو کوي. ځکه چې مایکرو خدمتونه په دې ډول لیکل کیدی شي چې تاسو دلته Node.js لرئ، دلته PHP، Python دلته، یو څه ایرلانګ دلته، موږ پوهیږو چې موږ نه غواړو هرچیرې ورته کوډ بیا ولیکو. له همدې امله ، OpenResty په مخ کې پلګ کیدی شي.

  • احصایې او تحلیلونه. معمولا NGINX په ننوتلو کې دی، او ټولې غوښتنې د هغې له لارې ځي. دا په دې ځای کې دی چې راټولول خورا اسانه دي. تاسو کولی شئ سمدلاسه یو څه محاسبه کړئ او چیرې یې اپلوډ کړئ ، د مثال په توګه ، Elasticsearch ، Logstash، یا په ساده ډول یې په لاګ کې ولیکئ او بیا یې چیرته واستوئ.
  • د څو کاروونکو سیسټمونه. د مثال په توګه، آنلاین لوبې هم د جوړولو لپاره خورا ښه دي. نن ورځ په کیپ ټاون کې ، الکساندر ګلاډیش به د OpenResty په کارولو سره د ملټي پلیر لوبې ګړندي پروټوټایپ کولو څرنګوالي په اړه وغږیږي.
  • د فلټر کولو غوښتنه (WAF). نن ورځ دا د فیشن وړ ده چې هر ډول ویب اپلیکیشن فایر والونه جوړ کړئ؛ ډیری خدمتونه شتون لري چې دوی یې چمتو کوي. د OpenResty په کارولو سره، تاسو کولی شئ خپل ځان ته د ویب اپلیکیشن فایروال جوړ کړئ چې ستاسو د غوښتنو سره سم به په ساده او اسانۍ سره غوښتنې فلټر کړي. که تاسو Python لرئ، نو تاسو پوهیږئ چې PHP به یقینا تاسو ته داخل نه شي، پرته لدې چې، البته، تاسو دا د کنسول څخه هرچیرې سپون کړئ. تاسو پوهیږئ چې تاسو MySQL او Python لرئ. شاید، دوی ممکن هڅه وکړي چې یو ډول ډایرکټر ټراورسل ترسره کړي او ډیټابیس ته یو څه داخل کړي. له همدې امله ، تاسو کولی شئ عجیب پوښتنې په ګړندۍ او ارزانه توګه په مخ کې فلټر کړئ.
  • ټولنه. څرنګه چې OpenResty په NGINX کې جوړ شوی، دا یو بونس لري - دا د NGINX ټولنه. دا خورا لوی دی، او د پوښتنو یوه ښه برخه چې تاسو به یې په لومړي سر کې د NGINX ټولنې لخوا حل شوي وي.

    لوا پراختیا کونکي. پرون ما د هغو هلکانو سره خبرې وکړې چې د HighLoad++ روزنې ورځې ته راغلي او اوریدلي چې یوازې په لوا کې تورنول لیکل شوی. دا ریښتیا نه ده، په لوا کې ډیری شیان لیکل شوي. مثالونه: OpenResty، Prosody XMPP سرور، Love2D لوبې انجن، Lua په Warcraft او نورو ځایونو کې سکریپټ شوی. د لوا ډیری پراختیا کونکي شتون لري، دوی یوه لویه او ځواب ویونکي ټولنه لري. زما د لوا ټولې پوښتنې په څو ساعتونو کې حل شوې. کله چې تاسو د بریښنالیک لیست ته ولیکئ، په لفظي توګه په څو دقیقو کې لا دمخه د ځوابونو یوه ډله شتون لري، دا تشریح کوي چې څه او څنګه، څه دي. ډیر ښه دی. له بده مرغه، داسې ډول، روحاني ټولنه په هر ځای کې شتون نلري.
    د OpenResty لپاره GitHub شتون لري، چیرې چې تاسو کولی شئ یوه مسله پرانیزئ که یو څه مات شوی وي. په ګوګل ګروپونو کې د بریښنالیک لیست شتون لري، چیرې چې تاسو کولی شئ په عمومي مسلو خبرې وکړئ، په چینایي کې د بریښنالیک لیست شتون لري - تاسو هیڅکله نه پوهیږئ، شاید تاسو په انګلیسي خبرې نه کوئ، مګر تاسو په چینایي پوهیږئ.

پایلې

  • زه امید لرم چې زه پدې توانیدلی وم چې بیان کړم چې OpenResty د ویب لپاره جوړ شوی خورا مناسب چوکاټ دی.
  • دا د ننوتلو په وړاندې لږ خنډ لري، ځکه چې کوډ د هغه څه سره ورته دی چې موږ یې لیکو، ژبه خورا ساده او لږترلږه ده.
  • دا د کال بیکس پرته غیر متناسب I/O چمتو کوي ، موږ به هیڅ نوډل ونه لرو لکه څنګه چې موږ ځینې وختونه په نوډ جے ایس کې لیکلی شو.
  • دا اسانه ګمارنه لري، ځکه چې موږ یوازې د اړین ماډل او زموږ کوډ سره NGINX ته اړتیا لرو، او هرڅه سم کار کوي.
  • لویه او ځواب ورکوونکې ټولنه.

ما په تفصیل سره ونه ویل چې روټینګ څنګه ترسره کیږي، دا ډیره اوږده کیسه وه.

ستاسو د پاملرنې مننه!


ولادیمیر پروتاسوف - OpenResty: د NGINX په بشپړ غوښتنلیک سرور بدلول

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

Add a comment