OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru okeAnyị na-ebipụta transcript nke akụkọ ọgbakọ ọzọ HighLoad++ 2016, nke mere na Skolkovo nso Moscow na November 7-8 afọ gara aga. Vladimir Protasov na-akọwa otu esi agbatị ọrụ NGINX na OpenResty na Lua.

Ndewo onye ọ bụla, aha m bụ Vladimir Protasov, m na-arụ ọrụ na Parallels. Aga m agwa gị ntakịrị gbasara onwe m. M na-eji ụzọ atọ n'ụzọ anọ nke ndụ m ide koodu. M ghọrọ onye mmemme ruo n'isi n'echiche nkịtị: mgbe ụfọdụ a na m ahụ koodu na nrọ m. Otu ụzọ n'ụzọ anọ nke ndụ bụ mmepe mmepụta ihe, koodu ederede nke na-abanye ozugbo na mmepụta. Koodu nke ụfọdụ n'ime gị na-eji mana amataghị ya.

Ya mere, ị ghọtara otú ọ dị njọ. Mgbe m dị obere, a bịara nye m ọdụ data terabyte abụọ a. Ọ dịịrị onye ọ bụla ebe a nnukwu ibu ugbu a. Agara m ọgbakọ ma jụọ: “Ụmụ okorobịa, gwa m, ị nwere nnukwu data, ihe niile ọ dị mma? bases ole ka ị nwere ebe ahụ? Ha zara m: “Anyị nwere 100 gigabytes!” M wee sị: "Ọ dị mma, 100 gigabytes!" M nọkwa na-eche n'ime onwe m ka m ga-esi jiri nlezianya na-echekwa ihu chaka m. Ị na-eche, ee, ụmụ okorobịa ahụ dị mma, mgbe ahụ, ị ​​​​gaghachi azụ na tinker na ọdụ data multi-terabyte ndị a. Na nke a - ịbụ obere. Ị nwere ike iche n'echiche ihe mgbu nke a bụ?

Ama m ihe karịrị asụsụ mmemme iri abụọ. Nke a bụ ihe m kwesịrị ịchọpụta ka m na-arụ ọrụ. Ha na-enye gị koodu na Erlang, C, C++, Lua, Python, Ruby, ihe ọzọ, na ị ga-ebipụ ya niile. N'ozuzu, m ga-emerịrị. Ọ gaghị ekwe omume ịgbakọ ọnụ ọgụgụ ahụ kpọmkwem, ma n'ebe dị gburugburu 20th ọnụ ọgụgụ ahụ furu efu.

Ebe onye ọ bụla nọ ebe ahụ maara ihe Parallels bụ na ihe anyị na-eme, agaghị m ekwu maka otú obi dị anyị mma na ihe anyị na-eme. Aga m agwa gị na anyị nwere ụlọ ọrụ 13 gburugburu ụwa, karịa ndị ọrụ 300, mmepe na Moscow, Tallinn na Malta. Ọ bụrụ na-ịchọrọ, ị nwere ike were ya kwaga Malta ma ọ bụrụ na oyi na-atụ n'oge oyi ma ịkwesịrị ikpo ọkụ azụ gị.

Kpọmkwem, ngalaba anyị na-ede na Python 2. Anyị na-azụ ahịa ma enweghị oge iji mejuputa teknụzụ ejiji, ya mere anyị na-ata ahụhụ. Anyị na-eji Django n'ihi na o nwere ihe niile, anyị weere ihe na-adịghị mkpa ma tụfuo ya. Ọzọkwa MySQL, Redis na NGINX. Anyị nwekwara ọtụtụ ihe ndị ọzọ dị mma. Anyị nwere MongoDB, anyị nwere oke bekee na-agbagharị, anyị nwere ihe niile - mana ọ bụghị nke m, anaghị m eme ya.

OpenResty

Agwara m onwe m. Ka anyị chepụta ihe m ga-ekwu maka ya taa:

  • Kedu ihe bụ OpenResty na gịnị ka eji eri ya?
  • Kedu ihe kpatara ịmalitegharị wiil ọzọ mgbe anyị nwere Python, NodeJS, PHP, Go na ihe ndị ọzọ dị mma nke onye ọ bụla na-enwe obi ụtọ?
  • Na ihe atụ ole na ole sitere na ndụ. Ekwesịrị m ịbelata akụkọ ahụ nke ukwuu n'ihi na ọ were m awa 3,5, yabụ a ga-enwe ihe atụ ole na ole.

OpenResty bụ NGINX. Ekele dịrị ya, anyị nwere sava weebụ zuru oke nke edere nke ọma ma na-arụ ọrụ ngwa ngwa. Echere m na ọtụtụ n'ime anyị na-eji NGINX na mmepụta. Unu niile mara na ọ na-agba ọsọ na mma. Ha mere I / O synchronous dị mma na ya, yabụ na anyị achọghị ịnya igwe ọ bụla, dịka ha mere na Python. Gevent dị mma, dị oke mma, mana ọ bụrụ na ị dee koodu C na ihe na-aga nke ọma, mgbe ahụ na Gevent ị ga-aga ara na-emezigharị ya. Enwere m ahụmahụ ahụ: o were ụbọchị abụọ zuru ezu iji chọpụta ihe na-ezighị ezi ebe ahụ. Ọ bụrụ na mmadụ gwuru gburugburu ruo ọtụtụ izu, chọta nsogbu ahụ, na-ede na Ịntanetị, na Google ahụghị ya, mgbe ahụ, anyị ga-arahụ kpamkpam crazy.

NGINX enweelarị caching yana ọdịnaya kwụ ọtọ emela. Ịkwesighi ichegbu onwe gị banyere otu esi eme nke a na mmadụ, ka ị ghara ịda mbà ebe, ka ị ghara ida ndị na-akọwa ihe ebe. Nginx dabara nke ọma ibugharị, ịkwesighi iche echiche maka ihe ị ga-ewere - WSGI, PHP-FPM, Gunicorn, Unicorn. etinyere Nginx, nyere ndị admins, ha maara ka esi arụ ọrụ na ya. Nginx na-ahazi arịrịọ n'ụzọ ahaziri ahazi. Aga m ekwu maka nke a ntakịrị oge. Na nkenke, ọ nwere usoro mgbe ọ nabatara arịrịọ ahụ, mgbe ọ na-ahazi ya, na mgbe o zigara onye ọrụ ọdịnaya ahụ.

Nginx dị mma, mana enwere otu nsogbu: ọ naghị agbanwe agbanwe, ọbụlagodi na njirimara niile dị mma nke ụmụ okorobịa ahụ jikọtara na nhazi ahụ, n'agbanyeghị ihe enwere ike ịhazi. Ike a ezughi oke. Ọ bụ ya mere ụmụ okorobịa si Taobao, ogologo oge gara aga, ọ dị ka afọ asatọ gara aga, wuru Lua n'ime ya. Kedu ihe ọ na-enye?

  • size. Ọ dị obere. LuaJIT na-enye ihe dị ka 100-200 kilobytes nke ebe nchekwa n'elu yana arụmọrụ pere mpe.
  • Ngwa ọsọ. Onye ntụgharị okwu LuaJIT dị nso na C n'ọtụtụ ọnọdụ, n'ọnọdụ ụfọdụ ọ na-efunahụ Java, na ndị ọzọ ọ na-eme ka ọ dị elu. Ruo oge ụfọdụ, a na-ewere ya dị ka steeti nka, ihe nchịkọta JIT kacha mma. Ugbu a enwere ndị jụrụ oyi, mana ha dị oke arọ, dịka ọmụmaatụ, otu V8. Ụfọdụ ndị ntụgharị JS na Java HotSpot na-adị ngwa ngwa n'ebe ụfọdụ, mana n'ebe ụfọdụ ha ka na-efunahụ.
  • Ọ dị mfe ịmụta. Ọ bụrụ na ị nwere, sịnụ, ntọala koodu Perl, ma ị naghị etinye akwụkwọ, ị gaghị ahụ ndị mmemme Perl. Ebe ọ bụ na ha adịghị adị, a kpụpụrụ ha nile, na ịkụziri ha ihe dị ogologo ma sie ike. Ọ bụrụ na ịchọrọ ndị mmemme maka ihe ọzọ, ị nwekwara ike ịmaliteghachi ha ma ọ bụ chọta ha. N'ihe gbasara Lua, ihe niile dị mfe. Nwa obere ọ bụla nwere ike ịmụ Lua n'ime ụbọchị atọ. O were m ihe dị ka awa abụọ iji chọpụta ya. Mgbe awa abụọ gachara m na-ede koodu na mmepụta. Ihe dị ka otu izu ka e mesịrị ọ gara ozugbo na mmepụta wee pụọ.

N'ihi ya, ọ dị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Enwere otutu ebe a. OpenResty anakọtala ụyọkọ modul, ma luash na nke injin. Ma ị nwere ihe niile dị njikere - etinyere ma rụọ ọrụ.

atụ

Ezuru egwu egwu, ka anyị gaa na koodu. Nke a bụ ntakịrị ndewo ụwa:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Kedu ihe dị ebe ahụ? Nke a bụ ebe Engins. Anyị anaghị echegbu onwe anyị, anyị anaghị ede ụzọ nke anyị, anyị anaghị ewere nke dị njikere - anyị enweelarị ya na NGINX, anyị na-ebi ndụ dị mma na ume ume.

content_by_lua_block bụ ngọngọ nke na-ekwu na anyị na-eji ihe odide Lua na-eje ozi. Anyị na-ewere mgbanwe nke Engins remote_addr ma tinye ya string.format. Nke a bụ otu ihe ahụ sprintf, nání na Lua, nani ezi. Anyị na-enye ya onye ahịa.

N'ihi ya, ọ ga-adị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ma ka anyị laghachi n'ụwa n'ezie. Ọ dịghị onye na-ebuga Hello World na mmepụta. Ngwa anyị na-agakarị na nchekwa data ma ọ bụ ebe ọzọ na ọtụtụ oge na-echere nzaghachi.

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ọ na-anọdụ ala chere. Ọ dịghị mma nke ukwuu. Mgbe ndị ọrụ 100.000 bịara, ọ na-esiri anyị ike. Ya mere, ka anyị jiri ngwa dị mfe dịka ọmụmaatụ. Anyị ga-achọ foto, dịka ọmụmaatụ, nwamba. Mana anyị agaghị achọ naanị, anyị ga-agbasa mkpụrụokwu na, ọ bụrụ na onye ọrụ achọọ "kittens," anyị ga-ahụ nwamba, nwamba aji, na ihe ndị ọzọ. Nke mbụ, anyị kwesịrị ịnweta data arịrịọ na azụ azụ. Ọ dị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ahịrị abụọ na-enye gị ohere iburu parampat GET, enweghị nsogbu. Ọzọ, ka anyị kwuo, site na nchekwa data nwere akara maka isiokwu na ndọtị, anyị na-enweta ozi a site na iji ajụjụ SQL mgbe niile. Ọ dị mfe. Ọ dị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Na-ejikọta ọba akwụkwọ resty.mysql, nke anyị nwere ugbua na kit. Anyị adịghị mkpa ịwụnye ihe ọ bụla, ihe niile dị njikere. Anyị na-egosi otu esi jikọọ na mee ajụjụ SQL:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ọ dị ntakịrị egwu ebe a, mana ihe niile na-arụ ọrụ. Ebe a 10 bụ oke. Anyị na-ewepụta ntinye 10, anyị dị umengwụ, anyị achọghị igosi ihe ọzọ. Echefuru m maka oke na SQL.

Ọzọ anyị ga-ahụ foto maka ajụjụ niile. Anyị na-anakọta ọtụtụ arịrịọ wee dejupụta tebụl Lua a na-akpọ reqs, anyị na-emekwa ngx.location.capture_multi.

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

A na-ezigara arịrịọ ndị a niile n'otu n'otu, eweghachitekwara anyị azịza ya. Oge ọrụ nhata na oge nzaghachi nke onye kacha nwayọ. Ọ bụrụ na anyị niile na-agba na 50 milliseconds, na anyị zigara otu narị arịrịọ, mgbe ahụ, anyị ga-enweta azịza na 50 milliseconds.

Ebe anyị dị umengwụ ma achọghị ide HTTP na njikwa caching, anyị ga-eme ka NGINX meere anyị ihe niile. Dị ka ị hụrụ, e nwere arịrịọ maka url/fetch, ebe a ọ nọ:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Anyị na-eme ka ọ dị mfe proxy_pass, anyị na-egosi ebe cache, otu esi eme ya, na ihe niile na-arụ ọrụ maka anyị.

Mana nke a ezughị, anyị ka kwesịrị ịnye onye ọrụ data ahụ. Echiche kachasị mfe bụ ịhazi ihe niile na JSON, dị mfe, n'ahịrị abụọ. Anyị na-enye Ụdị Ọdịnaya, anyị na-enye JSON.

Mana enwere otu ihe isi ike: onye ọrụ achọghị ịgụ JSON. Anyị kwesịrị ịdọta ndị mmepe n'ihu. Mgbe ụfọdụ anyị anaghị achọ ime nke a na mbụ. Na ndị ọkachamara SEO ga-ekwu na ọ bụrụ na anyị na-achọ foto, mgbe ahụ ọ dịghị mkpa na ha. Ma ọ bụrụ na anyị enye ha ụfọdụ ọdịnaya, ha ga-ekwu na search engines anyị adịghị index ihe ọ bụla.

Kedu ihe a ga-eme maka ya? N'ezie, anyị ga-enye onye ọrụ HTML. Ịmepụta site na aka abụghị ihe dị mma, yabụ anyị chọrọ iji ndebiri. Enwere ụlọ akwụkwọ maka nke a lua-resty-template.

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Eleghị anya ị hụla mkpụrụedemede atọ ahụ dị egwu OPM. OpenResty na-abịa na njikwa ngwugwu nke ya, nke ị nwere ike ịwụnye ụyọkọ modul dị iche iche, ọkachasị, lua-resty-template. Nke a bụ igwe ndebiri dị mfe, yiri ndebiri Django. N'ebe ahụ ị nwere ike dee koodu ma mee mgbanwe mgbanwe.

N'ihi ya, ihe niile ga-adị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Anyị na-ewere data ma mee template ahụ, ọzọ na ahịrị abụọ. Onye ọrụ ahụ nwere obi ụtọ, ọ natara nwamba. Ebe ọ bụ na anyị gbasaa arịrịọ ahụ, ọ natakwara akara ajị anụ maka kittens. Ị maghị, ma eleghị anya ọ na-achọ nke a kpọmkwem, ma ọ nweghị ike ịmepụta arịrịọ ya nke ọma.

Ihe niile dị mma, mana anyị nọ na mmepe ma achọghị igosi ya ndị ọrụ. Ka anyị mee ikike. Iji mee nke a, ka anyị lee ka NGINX si ejikwa arịrịọ ahụ na usoro OpenResty:

  • Akụkụ nke mbụ - ohere, mgbe onye ọrụ ka bịarutere, anyị lere ya anya site na nkụnye eji isi mee, site na adreesị IP, yana data ndị ọzọ. Anyị nwere ike ibipụ ya ozugbo ma ọ bụrụ na anyị achọghị ya. Enwere ike iji nke a maka ikike, ma ọ bụ ọ bụrụ na anyị enweta ọtụtụ arịrịọ, anyị nwere ike ibipụ ha ngwa ngwa n'oge a.
  • deeghachi ya. Anyị na-edegharị data arịrịọ.
  • content. Anyị na-ebufe ọdịnaya ahụ n'aka onye ọrụ.
  • nkụnye eji isi mee nyo. Anyị na-edochi isi nzaghachi. Ọ bụrụ na anyị ejiri proxy_pass, anyị nwere ike idegharị ụfọdụ nkụnye eji isi mee tupu inye ya onye ọrụ.
  • nzacha ahụ. Anyị nwere ike ịgbanwe ahụ.
  • abanye - igbu osisi. Ị nwere ike ide ndekọ na elasticsearch na-enweghị akwa mkpuchi ọzọ.

Ikike anyị ga-adị ka nke a:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Anyị ga-agbakwunye nke a na nke ahụ location, nke anyị kọwara na mbụ, ma tinye koodu a n'ebe ahụ:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Anyị na-ele anya ịhụ ma anyị nwere akara kuki. Ọ bụrụ na ọ bụghị, anyị na-arịọ maka ikike. Ndị ọrụ na-aghọ aghụghọ ma nwee ike iche na ha kwesịrị ịtọ akara kuki. Ya mere, anyị ga-etinyekwa ya na Redis:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Koodu maka ịrụ ọrụ na Redis dị nnọọ mfe ma ọ dịghị iche na asụsụ ndị ọzọ. N'otu oge ahụ, ntinye / mmepụta niile, ebe a na ebe ahụ, anaghị egbochi. Ọ bụrụ na ị dee koodu mmekọrịta, ọ na-arụ ọrụ n'otu oge. Ọ fọrọ nke nta ka ọ bụrụ gevent, mana emere ya nke ọma.

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ka anyị mee ikike n'onwe ya:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Anyị na-ekwu na anyị kwesịrị ịgụ akụkụ nke arịrịọ ahụ. Anyị na-enweta arụmụka POST wee lelee na nbanye na paswọọdụ ziri ezi. Ọ bụrụ na ha ezighi ezi, anyị na-agba gị aka maka ikike. Ma ọ bụrụ na ọ ziri ezi, dee akara ngosi na Redis:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Echefula ịtọ kuki, nke a na-emekwa na ahịrị abụọ:

OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

Ihe atụ dị mfe na ịkọ nkọ. N'ezie, anyị agaghị eme ọrụ na-egosi ndị mmadụ nwamba. Ma onye maara anyị. Ya mere, ka anyị gafee ihe a ga-eme na mmepụta.

  • Obere azụ azụ. Mgbe ụfọdụ, anyị kwesịrị iwepụta ntakịrị data na azụ azụ: ebe anyị kwesịrị itinye ụbọchị, ebe anyị kwesịrị igosipụta ndepụta, kwuo ole ndị ọrụ nọ na saịtị ugbu a, tinye counter ma ọ bụ ọnụ ọgụgụ. Ihe dị obere. Enwere ike ịme ụfọdụ obere iberibe. Nke a ga-eme ka ọ dị ngwa, dị mfe na nnukwu.
  • Nhazi data. Mgbe ụfọdụ, anyị na-achọ itinye mgbasa ozi n'ime ibe anyị, anyị na-enwetakwa mgbasa ozi a site na iji arịrịọ API. Nke a dị nnọọ mfe ime ebe a. Anyị anaghị ebu azụ azụ anyị, nke na-anọdụ ala ma na-arụsi ọrụ ike. Ị nwere ike iburu ya nakọta ya ebe a. Anyị nwere ike ijikọ ụfọdụ JS ọnụ ma ọ bụ, n'aka nke ọzọ, ejikọta ya ma buo ụzọ hazie ihe tupu inye ya onye ọrụ.
  • Facade maka microservice. Nke a bụkwa ezigbo ikpe, etinyere m ya. Tupu nke ahụ, arụrụ m ọrụ na Tenzor, ụlọ ọrụ na-ahụ maka mkpesa eletrọnịkị ma na-enye akụkọ ihe dị ka ọkara nke ụlọ ọrụ iwu kwadoro na mba ahụ. Anyị mepụtara ọrụ, a na-eme ọtụtụ ihe n'ebe ahụ site na iji otu usoro ahụ: ntụgharị, ikike na ndị ọzọ.
    Enwere ike iji OpenResty dị ka gluu maka microservices gị, na-enye ohere ịnweta ihe niile na otu interface. Ebe ọ bụ na enwere ike dee microservices n'ụzọ na ị nwere Node.js ebe a, PHP ebe a, Python ebe a, ụfọdụ Erlang ihe ebe a, anyị ghọtara na anyị achọghị idegharị otu koodu n'ebe niile. Ya mere, OpenResty nwere ike itinye n'ihu.

  • Statistics na nyocha. Ọ na-abụkarị NGINX nọ n'ọnụ ụzọ, arịrịọ niile na-agakwa na ya. Ọ bụ n'ebe a ka ọ dị mfe ịnakọta. Ị nwere ike gbakọọ ihe ozugbo wee bulite ya ebe, dịka ọmụmaatụ, Elasticsearch, Logstash, ma ọ bụ naanị dee ya na log ahụ wee ziga ya ebe.
  • Sistemụ ọrụ ọtụtụ. Dịka ọmụmaatụ, egwuregwu ịntanetị dịkwa mma ịme. Taa na Cape Town, Alexander Gladysh ga-ekwu maka otu esi eme ngwa ngwa mepụta egwuregwu ọtụtụ egwuregwu site na iji OpenResty.
  • Rịọ nzacha (WAF). N'oge a ọ bụ ihe ejiji ịme ụdị ngwa weebụ ọ bụla firewalls; enwere ọtụtụ ọrụ na-enye ha. Iji OpenResty, ị nwere ike ịme onwe gị ngwa ngwa webụ nke ga-enyocha arịrịọ ngwa ngwa dịka ihe ị chọrọ. Ọ bụrụ na ị nwere Python, ị ghọtara na a gaghị etinye PHP n'ime gị, ọ gwụla ma, n'ezie, ị na-atụgharị ya ebe ọ bụla site na njikwa. Ị maara na ị nwere MySQL na Python. Ma eleghị anya, ha nwere ike ịnwa ime ụdị ụfọdụ traversal ndekọ ma tinye ihe n'ime nchekwa data. Ya mere, ị nwere ike nyochaa ajụjụ dị iche iche ngwa ngwa na ọnụ ala ozugbo n'ihu.
  • Obodo. Ebe ọ bụ na e wuru OpenResty na NGINX, ọ nwere ego - nke a Ogbe NGINX. Ọ buru oke ibu, yana akụkụ dị mma nke ajụjụ ndị ị ga-enwe na mbụ ndị obodo NGINX edozilarị ya.

    Ndị mmepe Lua. Ụnyaahụ, mụ na ụmụ okorobịa ndị bịara ụbọchị ọzụzụ HighLoad ++ kwurịtara okwu wee nụ na ọ bụ naanị Tarantool ka edere na Lua. Nke a abụghị eziokwu, e dere ọtụtụ ihe n'asụsụ Lua. Ọmụmaatụ: OpenResty, Prosody XMPP nkesa, Love2D egwuregwu engine, Lua scripted na Warcraft na ndị ọzọ. Enwere ọtụtụ ndị mmepe Lua, ha nwere obodo buru ibu ma na-anabata ya. E meziri ajụjụ Lua m niile n’ime awa ole na ole. Mgbe ị na-ede na ndepụta nzipu ozi, n'ụzọ nkịtị n'ime nkeji ole na ole enweelarị ọtụtụ nzaghachi, na-akọwa ihe na otú, gịnị bụ ihe. Ọ mara oke mma. N'ụzọ dị mwute, ụdị ụdị ahụ, obodo ime mmụọ adịghị ebe niile.
    Enwere GitHub maka OpenResty, ebe ị nwere ike imepe esemokwu ma ọ bụrụ na ihe agbajiri. Enwere ndepụta nzipu ozi na otu Google, ebe ị nwere ike ikwurịta okwu n'ozuzu, enwere ndepụta nzipu ozi na Chinese - ị maghị, ikekwe ị naghị asụ Bekee, mana ị maara Chinese.

Nsonaazụ

  • Enwere m olileanya na m nwere ike ịkọwa na OpenResty bụ usoro dabara adaba nke ahaziri maka webụ.
  • O nwere ihe mgbochi dị ala na ntinye, ebe ọ bụ na koodu ahụ yiri ihe anyị na-ede, asụsụ ahụ dị mfe ma dị ntakịrị.
  • Ọ na-enye asynchronous I/O na-enweghị ọkpụkpọ oku, anyị agaghị enwe noodles dịka anyị nwere ike dee na NodeJS mgbe ụfọdụ.
  • Ọ nwere ntinye dị mfe, ebe ọ bụ na anyị chọrọ NGINX na modul dị mkpa na koodu anyị, ihe niile na-arụkwa ọrụ ozugbo.
  • Obodo buru ibu ma na-anabata ya.

Agwaghị m n'ụzọ zuru ezu ka esi eme njem, ọ tụgharịrị bụrụ akụkọ dị ogologo.

Gwa anyị ihe ị ga-eme!


Vladimir Protasov - OpenResty: ịtụgharị NGINX ka ọ bụrụ ihe nkesa ngwa zuru oke

isi: www.habr.com

Tinye a comment