OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseachBidh sinn ag ath-fhoillseachadh an tar-sgrìobhadh den aithisg bhon cho-labhairt HighLoad ++ 2016, a chaidh a chumail ann an Skolkovo faisg air Moscow air an t-Samhain 7-8 an-uiridh. Vladimir Protasov ag innse mar a leudaicheas tu gnìomhachd NGINX le OpenResty agus Lua.

Halo a h-uile duine, is e m ’ainm Vladimir Protasov, tha mi ag obair dha Parallels. Innsidh mi beagan mum dheidhinn fhìn dhut. Bidh mi a’ cur seachad trì chairteal de mo bheatha a’ sgrìobhadh còd. Thàinig mi gu bhith nam phrògramadair gu cridhe anns an t-seadh litireil: bidh mi uaireannan a’ faicinn còd nam aislingean. Tha cairteal de bheatha na leasachadh gnìomhachais, a’ sgrìobhadh còd a tha a’ dol dìreach gu cinneasachadh. Còd a chleachdas cuid agaibh ach nach eil fios agad air.

Gus innse dhut dè cho dona 'sa bha e. Nuair a bha mi beagan òg, thàinig mi a-steach agus thug iad dhomh an dà stòr-dàta terabyte sin. Tha e a-nis an seo airson a h-uile duine highload. Chaidh mi gu co-labhairtean agus dh’ fhaighnich mi: “Guys, innis dhomh, a bheil dàta mòr agad, a bheil a h-uile dad fionnar? Cia mheud bonn a th’ agad an sin? Fhreagair iad mi: “Tha 100 gigabytes againn!” Thuirt mi: “Cool, 100 gigabytes!” Agus smaoinich mi rium fhìn mar a shàbhalas mi an aghaidh poker gu sgiobalta. Tha thu a’ smaoineachadh, tha, gu bheil na balaich fionnar, agus an uairsin thig thu air ais agus tinker leis na stòran-dàta ioma-terabyte sin. Agus is e seo a bhith nad oileanach. An urrainn dhut smaoineachadh dè an seòrsa buille a th’ ann?

Tha mi eòlach air còrr air 20 cànan prògramaidh. Is e seo a bha agam ri thuigsinn rè na h-obrach. Bheir iad còd dhut ann an Erlang, ann an C, ann an C ++, ann an Lua, ann am Python, ann an Ruby, ann an rudeigin eile, agus feumaidh tu a ghearradh uile. San fharsaingeachd, bha agam ri. Cha robh e comasach an dearbh àireamh obrachadh a-mach, ach an àiteigin timcheall air 20 chaidh an àireamh a chall.

Leis gu bheil fios aig a h-uile duine an seo dè a th’ ann an Parallels agus na bhios sinn a’ dèanamh, cha bhith mi a’ bruidhinn air cho fionnar sa tha sinn agus na bhios sinn a’ dèanamh. Chan innis mi dhut ach gu bheil 13 oifisean againn air feadh an t-saoghail, còrr air 300 neach-obrach, leasachadh ann am Moscow, Tallinn agus Malta. Ma thogras tu, faodaidh tu a thoirt agus gluasad gu Malta, ma tha e fuar sa gheamhradh agus feumaidh tu do dhruim a bhlàthachadh.

Gu sònraichte, tha an roinn againn a 'sgrìobhadh ann am Python 2. Tha sinn ann an gnìomhachas agus chan eil ùine againn teicneòlasan fasanta a thoirt a-steach, agus mar sin bidh sinn a 'fulang. Tha Django againn, oir tha a h-uile càil ann, agus ghabh sinn an còrr agus thilg sinn air falbh e. Cuideachd MySQL, Redis agus NGINX. Tha tòrr rudan fionnar eile againn cuideachd. Tha MongoDB againn, tha coineanaich againn a’ ruith mun cuairt, dìreach chan eil dad againn - ach chan e mise a th’ ann, agus cha bhith mi ga dhèanamh.

Fosgailte

Dh'innis mi mum dheidhinn fhìn. Chì sinn na tha mi a’ dol a bhruidhinn an-diugh:

  • Dè a th’ ann an OpenResty agus cò leis a bhios e ag ithe?
  • Carson ath-chruthaich a’ chuibhle nuair a bhios Python, NodeJS, PHP, Go agus stuthan fionnar eile againn a bhios a h-uile duine toilichte?
  • Agus beagan eisimpleirean fìor. B’ fheudar dhomh an aithisg a ghearradh sìos gu mòr, oir fhuair mi e airson 3,5 uairean, agus mar sin cha bhi mòran eisimpleirean ann.

Is e OpenResty NGINX. Taing dha, tha frithealaiche lìn làn-chuimseach againn, a tha air a dheagh sgrìobhadh, bidh e ag obair gu sgiobalta. Tha mi a’ smaoineachadh gu bheil a’ mhòr-chuid againn a’ cleachdadh NGINX ann an cinneasachadh. Tha fios agad uile gu bheil e luath agus fionnar. Rinn iad I / O sioncronaich fionnar ann, agus mar sin chan fheum sinn dad a rothaireachd san aon dòigh sa chaidh gevent a chuairteachadh ann am Python. Tha Gevent fionnar, fionnar, ach ma sgrìobhas tu còd-C agus ma thèid rudeigin ceàrr air gevent, thèid thu às a chiall. Bha eòlas agam: thug e dà latha slàn gus faighinn a-mach dè a chaidh ceàrr an sin. Mura robh cuideigin air a chladhach airson beagan sheachdainean roimhe, nach do lorg e an duilgheadas, nach do sgrìobh e air an eadar-lìn e, agus nach do lorg Google e, bhiodh sinn air a dhol gu tur às mo chiall.

Tha NGINX mu thràth a’ dèanamh tasgadan agus susbaint statach. Cha leig thu leas a bhith draghail mu mar a nì thu e gu daonna, gus nach bi thu slaodach an àiteigin, gus nach caill thu tuairisgeulan an àiteigin. Tha Nginx gu math goireasach airson a chuir a-steach, cha leig thu leas smaoineachadh air dè a bheir thu - WSGI, PHP-FPM, Gunicorn, Unicorn. Chaidh Nginx a chuir a-steach, air a thoirt dha na rianairean, tha fios aca mar a dh’ obraicheas iad leis. Bidh Nginx a’ làimhseachadh iarrtasan ann an dòigh structaraichte. Bruidhnidh mi mu dheidhinn seo beagan nas fhaide air adhart. Ann an ùine ghoirid, tha ìre aige nuair a ghabh e ris an iarrtas, nuair a rinn e pròiseasadh agus nuair a thug e an susbaint don neach-cleachdaidh.

Tha Nginx fionnar, ach tha aon dhuilgheadas ann: chan eil e sùbailte gu leòr eadhon leis na feartan fionnar sin a phut na balaich a-steach don config, a dh ’aindeoin gum faodar a ghnàthachadh. Chan eil an cumhachd seo gu leòr. Mar sin, thog na balaich à Taobao aon uair, tha mi a’ smaoineachadh o chionn ochd bliadhna, Lua a-steach dha. Dè tha e a 'toirt seachad?

  • meud. Tha e beag. Bheir LuaJIT àite timcheall air 100-200 kilobytes de chuimhne os cionn agus glè bheag de choileanadh os an cionn.
  • Astar. Tha an t-eadar-theangair LuaJIT faisg air C ann an iomadh suidheachadh, ann an cuid de shuidheachaidhean bidh e a’ call do Java, ann an cuid bidh e a’ dol seachad air. Airson greis, bhathas den bheachd gur e ùr-nodha a bh’ ann, an neach-cruinneachaidh JIT as fhuaire. A-nis tha feadhainn nas fhuaire ann, ach tha iad gu math trom, mar eisimpleir, an aon V8. Tha cuid de eadar-mhìnearan JS agus Java HotSpot nas luaithe aig cuid de phuingean, ach tha iad fhathast a 'call aig cuid de phuingean.
  • Furasta ionnsachadh. Ma tha, can, còd Perl agad agus nach eil thu a’ gleidheadh, chan fhaigh thu prògraman Perl. A chionn nach 'eil iad ann, thugadh air falbh iad uile, agus tha e fada agus duilich an teagasg. Ma tha thu ag iarraidh prògramadairean airson rudeigin eile, is dòcha gum feum iad a bhith air an ath-thrèanadh no air an lorg. Ann an cùis Lua, tha a h-uile dad sìmplidh. Faodar Lua ionnsachadh le òigridh sam bith ann an trì latha. Thug e timcheall air dà uair a thìde dhomh faighinn a-mach. Dà uair a thìde às deidh sin, bha mi mu thràth a’ sgrìobhadh còd ann an riochdachadh. Mu sheachdain an dèidh sin, chaidh e dìreach gu riochdachadh agus dh'fhalbh e.

Mar thoradh air an sin, tha e coltach ri seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Tha tòrr an seo. Tha OpenResty air dòrlach de mhodalan a chruinneachadh, an dà chuid lush agus einnsean. Agus tha a h-uile dad deiseil agad - air a chuir a-steach agus ag obair.

eisimpleirean

Gu leòr de na faclan, gluaisidh sinn air adhart chun chòd. Seo beagan Hello World:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Dè th' ann? 's e seo an t-àite einnsean. Na gabh dragh, cha bhith sinn a’ sgrìobhadh ar slighe fhèin, cha bhith sinn a’ gabhail fear deiseil - tha e againn mu thràth ann an NGINX, tha sinn beò gu math agus leisg.

content_by_lua_block na bhloca a tha ag ràdh gu bheil sinn a’ frithealadh susbaint a’ cleachdadh sgriobt Lua. Gabhaidh sinn caochladair einnsean remote_addr agus sluig a steach e string.format. Tha seo mar an ceudna sprintf, a-mhàin ann an Lua, a-mhàin ceart. Agus bidh sinn ga thoirt don neach-dèiligidh.

Mar thoradh air an sin, seallaidh e mar seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Ach air ais chun fhìor shaoghal. Ann an riochdachadh, chan eil duine a 'cleachdadh Hello World. Mar as trice bidh an tagradh againn a’ dol chun stòr-dàta no an àiteigin eile agus a’ mhòr-chuid den ùine bidh e a’ feitheamh ri freagairt.

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Dìreach suidhe agus feitheamh. Chan eil e glè mhath. Nuair a thig 100.000 neach-cleachdaidh, tha e gu math duilich dhuinn. Mar sin, cleachdamaid tagradh sìmplidh mar eisimpleir. Coimheadaidh sinn airson dealbhan, mar eisimpleir, cait. Is e dìreach nach dèan sinn dìreach sgrùdadh, leudaichidh sinn na prìomh fhaclan agus, ma rinn an neach-cleachdaidh sgrùdadh airson “piseagan”, lorgaidh sinn cait, fluffies, agus mar sin air adhart. An toiseach feumaidh sinn an dàta iarrtas fhaighinn air an backend. Tha e coltach ri seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Leigidh dà loidhne dhut paramadairean GET a thogail, gun duilgheadas sam bith. An uairsin gheibh sinn, mar eisimpleir, am fiosrachadh seo bho stòr-dàta le clàr le prìomh fhacal agus leudachadh a’ cleachdadh ceist SQL cunbhalach. Tha a h-uile dad sìmplidh. Tha e coltach ri seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Bidh sinn a 'ceangal an leabharlann resty.mysql, a tha againn mar-thà anns a’ phut. Chan fheum sinn dad a stàladh, tha a h-uile dad deiseil. Sònraich mar a cheanglas tu agus a nì thu ceist SQL:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Tha e rud beag eagallach, ach tha e ag obair. Seo 10 an ìre as àirde. Bidh sinn a’ tarraing a-mach 10 clàran, tha sinn leisg, chan eil sinn airson barrachd a shealltainn. Ann an SQL, dhìochuimhnich mi mun chrìoch.

An uairsin lorg sinn ìomhaighean airson a h-uile ceist. Bidh sinn a’ cruinneachadh dòrlach de dh’ iarrtasan agus a’ lìonadh clàr Lua ris an canar reqs, agus dèan ngx.location.capture_multi.

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Bidh na h-iarrtasan sin uile a’ dol aig an aon àm, agus tha na freagairtean air an tilleadh thugainn. Tha an ùine ruith co-ionann ri ùine freagairt an tè as slaodaiche. Ma loisgeas sinn uile air ais ann an 50 milliseconds, agus gun cuir sinn ceud iarrtas, gheibh sinn freagairt ann an 50 milliseconds.

Leis gu bheil sinn leisg agus nach eil sinn airson làimhseachadh HTTP agus caching a sgrìobhadh, bheir sinn air NGINX a h-uile càil a dhèanamh dhuinn. Mar a chunnaic thu, bha iarrtas ann airson url/fetchseo e:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Bidh sinn a 'dèanamh sìmplidh proxy_pass, sònraich càite an dèan thu tasgadan, mar a nì thu e, agus bidh a h-uile dad ag obair dhuinn.

Ach chan eil seo gu leòr, feumaidh sinn fhathast an dàta a thoirt don neach-cleachdaidh. Is e am beachd as sìmplidh a h-uile càil a chuir gu JSON, gu furasta, ann an dà loidhne. Bheir sinn Content-Type, bheir sinn JSON.

Ach tha aon duilgheadas ann: chan eil an neach-cleachdaidh airson JSON a leughadh. Feumaidh sinn luchd-leasachaidh aghaidh a thàladh. Uaireannan chan eil sinn a 'faireachdainn mar a bhith ga dhèanamh an toiseach. Tha, agus bidh eòlaichean SEO ag ràdh ma tha sinn a 'coimhead airson dealbhan, chan eil dragh orra. Agus ma bheir sinn beagan susbaint dhaibh, canaidh iad nach bi na h-innealan rannsachaidh againn a’ clàr-amais dad.

Dè a dhèanamh leis? Gu dearbh, bheir sinn HTML don neach-cleachdaidh. Chan eil gineadh le làmhan comme il faut, agus mar sin tha sinn airson teamplaidean a chleachdadh. Tha leabharlann ann airson seo lua-resty-template.

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Feumaidh gu bheil thu air na trì litrichean eagallach OPM fhaicinn. Bidh OpenResty a ’tighinn leis a’ mhanaidsear pacaid aige fhèin, tron ​​​​urrainn dhut dòrlach de mhodalan eadar-dhealaichte a chuir a-steach, gu sònraichte, lua-resty-template. Is e einnsean teamplaid sìmplidh a th’ ann coltach ri teamplaidean Django. An sin faodaidh tu còd a sgrìobhadh agus ionadachadh caochlaideach a dhèanamh.

Mar thoradh air an sin, seallaidh a h-uile dad rudeigin mar seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Ghabh sinn an dàta agus rinn sinn an teamplaid a-rithist ann an dà loidhne. Tha an neach-cleachdaidh toilichte, fhuair cait. Bhon a leudaich sinn an t-iarrtas, fhuair e cuideachd ròn bian airson piseagan. Chan eil fios agad a-riamh, is dòcha gu robh e ga lorg, ach cha b’ urrainn dha an t-iarrtas aige a dhealbhadh ceart.

Tha a h-uile dad fionnar, ach tha sinn gan leasachadh, agus chan eil sinn airson sealltainn do luchd-cleachdaidh fhathast. Dèanamaid ùghdarrachadh. Gus seo a dhèanamh, chì sinn mar a làimhsicheas NGINX an t-iarrtas a thaobh OpenResty:

  • A' chiad ìre - ruigsinneachd, nuair a thàinig an neach-cleachdaidh dìreach, agus thug sinn sùil air le cinn, le seòladh IP, le dàta eile. Faodaidh tu a ghearradh dheth sa bhad mura toil leinn e. Faodar seo a chleachdadh airson cead, no ma gheibh sinn tòrr iarrtasan, is urrainn dhuinn gu furasta an gearradh aig an ìre seo.
  • ath-sgrìobh. Ag ath-sgrìobhadh cuid de dhàta iarrtas.
  • clàr na làraich. Bheir sinn susbaint don neach-cleachdaidh.
  • sìoltachan cinn. Atharraich na cinn-cinn freagairt. Ma chleachd sinn proxy_pass, is urrainn dhuinn cuid de chinn-cinn ath-sgrìobhadh mus toir sinn don neach-cleachdaidh e.
  • criathrag corp. Faodaidh sinn an corp atharrachadh.
  • log - logadh. Tha e comasach logaichean a sgrìobhadh ann an elasticsearch gun còmhdach a bharrachd.

Bidh an t-ùghdarras againn a’ coimhead rudeigin mar seo:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Cuiridh sinn seo ri sin location, air an tug sinn cunntas roimhe, agus cuir an còd a leanas an sin:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Bidh sinn a’ coimhead feuch a bheil tòcan cookie againn. Mura h-eil, an uairsin bidh sinn a 'tilgeil air cead. Tha luchd-cleachdaidh seòlta agus faodaidh iad tomhas gu bheil feum air comharra briosgaid a shuidheachadh. Mar sin, cuiridh sinn ann an Redis e cuideachd:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Tha an còd airson a bhith ag obair le Redis gu math sìmplidh agus chan eil e eadar-dhealaichte bho chànanan eile. Aig an aon àm, a h-uile cur a-steach / toradh, dè a th 'ann, dè a tha an seo, chan eil e a' bacadh. Ma sgrìobhas tu còd sioncronaich, bidh e ag obair asyncronach. Coltach ri gevent, dìreach air a dhèanamh gu math.

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Dèanamaid an t-ùghdarras fhèin:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Tha sinn ag ràdh gum feum sinn am buidheann iarrtais a leughadh. Bidh sinn a’ faighinn argamaidean POST, dèan cinnteach gu bheil an logadh a-steach agus am facal-faire ceart. Ma tha ceàrr, bidh sinn a 'tilgeil air cead. Agus ma tha iad ceart, bidh sinn a’ sgrìobhadh an comharra gu Redis:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Na dì-chuimhnich am briosgaid a shuidheachadh, tha seo cuideachd air a dhèanamh ann an dà loidhne:

OpenResty: tionndaidh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Tha an eisimpleir sìmplidh, tuairmeasach. Gun teagamh, cha dèan sinn seirbheis a sheallas cait do dhaoine. Ach cò aig a tha fios sinn. Mar sin rachamaid thairis air na ghabhas dèanamh ann an riochdachadh.

  • Cùl-fhiosrachadh minimalist. Aig amannan feumaidh sinn beagan dàta a thoirt don backend: an àiteigin feumaidh sinn an ceann-latha a chuir na àite, an àiteigin feumaidh sinn liosta de sheòrsa air choreigin a thaisbeanadh, innis cia mheud neach-cleachdaidh a tha air an làrach a-nis, sgriubha air cuntair no staitistig. Rud cho beag. Faodar cuid de phìosan beaga a dhèanamh gu math furasta. Bidh seo luath, furasta agus sgoinneil.
  • Ro-phròiseasadh dàta. Aig amannan bidh sinn airson sanasan fhighe a-steach don duilleag againn, agus bidh sinn a’ gabhail na sanasan sin le iarrtasan API. Tha seo gu math furasta a dhèanamh an seo. Cha bhith sinn a’ luchdachadh ar backend, a tha ag obair gu cruaidh mar-thà. Faodaidh tu a thogail agus a chruinneachadh an seo. Is urrainn dhuinn beagan JS a dhealbhadh no, air an làimh eile, unstick, rudeigin a ro-phròiseas mus toir e don neach-cleachdaidh e.
  • Facade airson microservice. Tha seo cuideachd na chùis fìor mhath, chuir mi an gnìomh e. Roimhe sin, bha mi ag obair dha Tenzor, companaidh aithris dealanach a bheir seachad aithris airson timcheall air leth de na buidhnean laghail san dùthaich. Tha sinn air seirbheis a dhèanamh, tha mòran rudan air an dèanamh an sin a’ cleachdadh an aon uidheamachd: slighe, ùghdarras, agus barrachd.
    Faodar OpenResty a chleachdadh mar an glaodh airson na meanbh-sheirbheisean agad gus aon chothrom a thoirt do gach nì agus aon eadar-aghaidh. Leis gum faodar microservices a sgrìobhadh ann an dòigh is gu bheil Node.js agad an seo, tha PHP agad an seo, tha Python agad an seo, tha rud Erlang an seo, tha sinn a’ tuigsinn nach eil sinn airson an aon chòd ath-sgrìobhadh anns a h-uile àite. Mar sin, faodar OpenResty a chuir a-steach don aghaidh.

  • Staitistig agus anailis. Mar as trice tha NGINX aig an t-slighe a-steach, agus bidh a h-uile iarrtas a’ dol troimhe. Is ann san àite seo a tha e gu math goireasach a chruinneachadh. Faodaidh tu rudeigin obrachadh a-mach sa bhad agus a thilgeil an àiteigin, mar eisimpleir, an aon Elasticsearch, Logstash, no dìreach sgrìobh e chun log agus an uairsin cuir e an àiteigin.
  • Siostaman ioma-chleachdaiche. Mar eisimpleir, tha geamannan air-loidhne glè mhath ri dhèanamh cuideachd. An-diugh ann an Cape Town innsidh Alexander Gladysh dhut mar a nì thu prototype gu sgiobalta air geama ioma-chluicheadair a’ cleachdadh OpenResty.
  • Criathradh Iarrtais (WAF). A-nis tha e fasanta a h-uile seòrsa de bhallachan-teine ​​​​app lìn a dhèanamh, tha mòran sheirbheisean gan toirt seachad. Le cuideachadh bho OpenResty, faodaidh tu balla-teine ​​​​app lìn a dhèanamh dhut fhèin, a bhios gu sìmplidh agus gu furasta a’ sìoladh iarrtasan a rèir do riatanasan. Ma tha Python agad, tuigidh tu nach bi PHP gu cinnteach air a thoirt a-steach dhut, mura h-eil thu, gu dearbh, ga shìolachadh an àite sam bith bhon chonsail. Tha fios agad gu bheil MySQL agus Python agad. Is dòcha, an seo faodaidh iad feuchainn ri slighe seòlaidh de sheòrsa air choreigin a dhèanamh agus rudeigin a chuir a-steach don stòr-dàta. Mar sin, faodaidh tu iarrtasan balbh a shìoladh gu sgiobalta agus gu saor dìreach aig an aghaidh.
  • Coimhearsnachd. Leis gu bheil OpenResty stèidhichte air NGINX, tha bònas aige - is e seo Coimhearsnachd NGINX. Tha e gu math mòr, agus chaidh mòran de na ceistean a bhios agad an-toiseach a fhreagairt le coimhearsnachd NGINX.

    Luchd-leasachaidh Lua. An-dè bhruidhinn mi ris na balaich a thàinig gu latha trèanaidh HighLoad ++ agus a chuala nach eil ach Tarantool sgrìobhte ann an Lua. Chan ann mar seo a tha, tha tòrr rudan sgrìobhte ann an Lua. Eisimpleirean: OpenResty, frithealaiche Prosody XMPP, einnsean geama Love2D, tha Lua air a sgrìobhadh ann an Warcraft agus an àiteachan eile. Tha tòrr luchd-leasachaidh Lua ann, tha coimhearsnachd mhòr agus freagairteach aca. Chaidh mo cheistean Lua uile a fhreagairt taobh a-staigh beagan uairean a thìde. Nuair a sgrìobhas tu chun liosta puist, gu litearra ann am beagan mhionaidean tha dòrlach de fhreagairtean ann mu thràth, bidh iad ag innse dè agus ciamar, dè a th’ ann. Tha e sgoinneil. Gu mì-fhortanach, chan eil a leithid de choimhearsnachd dhùrachdach anns a h-uile àite.
    Tha GitHub aig OpenResty, far an urrainn dhut cùis fhosgladh ma bhriseas rudeigin. Tha liosta puist air Cuantail Ghoogle far an urrainn dhut ceistean coitcheann a dheasbad, tha liosta puist ann an Sìonais - chan eil fios agad a-riamh, is dòcha nach eil Beurla agad, ach tha eòlas agad air Sìnis.

Builean

  • Tha mi an dòchas gun robh e comasach dhomh innse gur e frèam lìn a tha gu math goireasach a th’ ann an OpenResty.
  • Tha ìre inntrigidh ìosal aige, leis gu bheil an còd coltach ris na tha sinn a’ sgrìobhadh, tha an cànan gu math sìmplidh agus glè bheag.
  • Bidh e a’ toirt seachad I/O asyncronach às aonais fios air ais, cha bhith nòtan againn oir is urrainn dhuinn uaireannan sgrìobhadh ann an NodeJS.
  • Tha cleachdadh furasta aige, oir chan fheum sinn ach NGINX leis a’ mhodal cheart agus an còd againn, agus bidh a h-uile dad ag obair sa bhad.
  • Coimhearsnachd mhòr agus freagairteach.

Cha do dh’ innis mi gu mionaideach mar a thèid slighe a dhèanamh, b’ e sgeulachd glè fhada a bh’ ann.

Спасибо за внимание!


Vladimir Protasov - OpenResty: tionndadh NGINX gu bhith na fhrithealaiche tagraidh làn-chuimseach

Source: www.habr.com

Cuir beachd ann