OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npoPeb rov luam tawm cov ntawv sau tseg ntawm lub rooj sib tham daim ntawv tshaj tawm HighLoad ++ 2016, uas tau tshwm sim hauv Skolkovo ze Moscow thaum lub Kaum Ib Hlis 7-8 xyoo tas los. Vladimir Protasov piav qhia yuav ua li cas txuas ntxiv NGINX kev ua haujlwm nrog OpenResty thiab Lua.

Nyob zoo txhua tus, kuv lub npe yog Vladimir Protasov, Kuv ua haujlwm ntawm Parallels. Kuv mam qhia koj me ntsis txog kuv tus kheej. Kuv siv peb lub hlis twg ntawm kuv lub neej sau code. Kuv dhau los ua tus programmer rau qhov tseem ceeb hauv kev nkag siab zoo: qee zaum kuv pom cov lej hauv kuv tus npau suav. Ib lub hlis twg ntawm lub neej yog kev tsim kho kev lag luam, sau cov lej uas ncaj qha mus rau hauv kev tsim khoom. Ib tug code uas ib txhia ntawm koj siv tab sis tsis paub nws.

Yog li koj nkag siab tias nws phem npaum li cas. Thaum kuv tseem yog me nyuam yaus, kuv tuaj thiab tau muab cov ntaub ntawv ob-terabyte no. Nws yog siab load rau txhua tus ntawm no tam sim no. Kuv tau mus rau cov rooj sib tham thiab nug tias: “Cov txiv neej, qhia kuv, koj muaj cov ntaub ntawv loj, puas yog txhua yam txias? Koj muaj pes tsawg lub hauv paus? Lawv teb kuv tias: "Peb muaj 100 gigabytes!" Kuv hais tias: "Zoo, 100 gigabytes!" Thiab kuv tau xav rau kuv tus kheej yuav ua li cas ua tib zoo tuav kuv lub ntsej muag poker. Koj xav tias, yog, cov txiv neej yog txias, thiab tom qab ntawd koj rov qab mus rau tinker nrog cov ntaub ntawv ntau terabyte. Thiab qhov no yog ib tug junior. Koj puas xav tias lub tshuab no yog dab tsi?

Kuv paub ntau tshaj 20 hom lus programming. Nov yog qee yam uas kuv yuav tsum xav txog thaum kuv ua haujlwm. Lawv muab koj cov cai hauv Erlang, C, C ++, Lua, Python, Ruby, lwm yam, thiab koj yuav tsum txiav tag nrho. Feem ntau, kuv yuav tsum tau. Nws tsis tuaj yeem suav tus lej tseeb, tab sis qhov chaw nyob ib ncig ntawm 20th tus lej tau ploj lawm.

Txij li txhua tus neeg tam sim no paub tias Parallels yog dab tsi thiab peb ua dab tsi, kuv yuav tsis tham txog qhov peb txias npaum li cas thiab peb ua dab tsi. Kuv tsuas yog qhia koj tias peb muaj 13 lub chaw ua haujlwm thoob ntiaj teb, ntau dua 300 tus neeg ua haujlwm, kev txhim kho hauv Moscow, Tallinn thiab Malta. Yog tias koj xav tau, koj tuaj yeem nqa nws thiab txav mus rau Malta yog tias nws txias rau lub caij ntuj no thiab koj yuav tsum sov koj nraub qaum.

Tshwj xeeb, peb chav haujlwm sau ntawv hauv Python 2. Peb tab tom ua lag luam thiab tsis muaj sijhawm los siv cov thev naus laus zis niaj hnub, yog li peb raug kev txom nyem. Peb siv Django vim nws muaj txhua yam, thiab peb tau txais yam tsis tsim nyog thiab muab pov tseg. Kuj MySQL, Redis thiab NGINX. Peb kuj tseem muaj lwm yam txias txias. Peb muaj MongoDB, peb muaj luav khiav ncig, peb muaj txhua yam - tab sis nws tsis yog kuv li, thiab kuv tsis ua.

OpenResty

Kuv qhia txog kuv tus kheej. Cia peb xav txog qhov kuv yuav tham txog hnub no:

  • OpenResty yog dab tsi thiab nws noj nrog dab tsi?
  • Vim li cas thiaj rov tsim dua lwm lub log thaum peb muaj Python, NodeJS, PHP, Mus thiab lwm yam txias uas txhua tus zoo siab nrog?
  • Thiab ob peb yam piv txwv ntawm lub neej. Kuv yuav tsum tau txiav daim ntawv tshaj tawm ntau vim nws coj kuv 3,5 teev, yog li yuav muaj qee qhov piv txwv.

OpenResty yog NGINX. Ua tsaug rau nws, peb muaj lub vev xaib ua haujlwm puv puv uas sau tau zoo thiab ua haujlwm sai. Kuv xav tias peb feem ntau siv NGINX hauv kev tsim khoom. Nej txhua tus paub tias nws ceev thiab txias. Lawv ua kom txias synchronous I / O hauv nws, yog li peb tsis tas yuav mus ncig ib yam dab tsi, ib yam li lawv tau ua hauv Python. Genvent yog txias, zoo, tab sis yog tias koj sau C code thiab ib yam dab tsi mus tsis ncaj ncees lawm, ces nrog Genvent koj yuav mus vwm debugging nws. Kuv muaj qhov kev paub: nws tau siv ob hnub tag nrho los xyuas seb qhov twg mus tsis ncaj ncees lawm. Yog tias ib tug neeg tsis tau khawb ib ncig ntawm ob peb lub lis piam, pom qhov teeb meem, sau hauv Internet, thiab Google tsis pom nws, ces peb yuav vwm tag.

NGINX twb muaj caching thiab cov ntsiab lus zoo li qub ua tiav. Koj tsis tas yuav txhawj xeeb txog yuav ua li cas ua qhov no tib neeg, kom koj tsis txhob qeeb rau qee qhov chaw, kom koj tsis txhob poob cov lus piav qhia qhov chaw. Nginx yooj yim heev rau kev xa tawm, koj tsis tas yuav xav txog dab tsi coj - WSGI, PHP-FPM, Gunicorn, Unicorn. Nginx tau teeb tsa, muab rau cov thawj coj, lawv paub ua haujlwm nrog nws. Nginx txheej txheem thov raws li kev teeb tsa. Kuv mam li tham txog qhov no me ntsis tom qab. Hauv luv luv, nws muaj ib theem thaum nws nyuam qhuav lees txais qhov kev thov, thaum nws ua tiav, thiab thaum nws tau txais cov ntsiab lus rau cov neeg siv.

Nginx yog txias, tab sis muaj ib qho teeb meem: nws tsis yooj yim txaus, txawm tias tag nrho cov yam ntxwv txias uas cov txiv neej tau crammed rau hauv config, txawm li cas los yuav configured. Lub hwj chim no tsis txaus. Tias yog vim li cas cov txiv neej ntawm Taobao, ntev dhau los, zoo li yim xyoo dhau los, tsim Lua rau hauv nws. Nws muab dab tsi?

  • loj. Nws yog me me. LuaJIT muab txog 100-200 kilobytes ntawm lub cim xeeb nyiaj siv ua haujlwm thiab kev ua haujlwm tsawg kawg nkaus.
  • Ceev. Tus neeg txhais lus LuaJIT nyob ze rau C hauv ntau qhov xwm txheej, qee lub sijhawm nws poob rau Java, lwm qhov nws ua tau zoo dua. Rau qee lub sijhawm nws tau suav hais tias yog lub xeev ntawm kev kos duab, qhov txias tshaj plaws JIT compiler. Tam sim no muaj cov txias txias, tab sis lawv hnyav heev, piv txwv li, tib V8. Qee tus neeg txhais lus JS thiab Java HotSpot tau nrawm dua ntawm qee lub ntsiab lus, tab sis hauv qee qhov chaw lawv tseem poob.
  • Yooj yim kawm. Yog tias koj muaj, hais, Perl code puag, thiab koj tsis Booking, koj yuav tsis pom Perl programmers. Vim tias lawv tsis muaj nyob, lawv tau muab tshem tawm tag nrho, thiab kev qhia lawv ntev thiab nyuaj. Yog tias koj xav tau cov programmer rau lwm yam, koj kuj yuav tau rov qhia lawv lossis nrhiav lawv. Nyob rau hauv cov ntaub ntawv ntawm Lua, txhua yam yog yooj yim. Ib tug junior kawm tau Lua hauv peb hnub. Nws siv kuv li ob teev los xyuas nws. Ob teev tom qab ntawd kuv twb tau sau code hauv ntau lawm. Txog ib lub lim tiam tom qab ntawd nws tau ncaj qha mus rau kev tsim khoom thiab tawm mus.

Yog li ntawd, nws zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Muaj ntau ntawm no. OpenResty tau sau ib pawg ntawm cov qauv, ob qho tib si lush thiab lub cav. Thiab koj muaj txhua yam npaj txhij - xa mus thiab ua haujlwm.

piv txwv

Txaus ntawm cov nkauj, cia peb txav mus rau qhov chaws. Nov yog me ntsis Hello World:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Nyob qhov twg? Nov yog qhov chaw Engins. Peb tsis txhob txhawj, peb tsis sau peb tus kheej txoj kev, peb tsis siv qee qhov npaj ua ib qho - peb twb muaj nyob rau hauv NGINX, peb ua lub neej zoo thiab tub nkeeg.

content_by_lua_block yog ib qho thaiv uas hais tias peb tab tom muab cov ntsiab lus siv Lua tsab ntawv. Peb coj cov Engins sib txawv remote_addr thiab muab tso rau hauv string.format. Qhov no yog tib yam li sprintf, tsuas yog nyob rau hauv Lua, tsuas yog. Thiab peb muab rau tus neeg siv khoom.

Raws li qhov tshwm sim, nws yuav zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Tab sis cia peb rov qab mus rau lub ntiaj teb tiag. Tsis muaj leej twg xa Hello World rau kev tsim khoom. Peb daim ntawv thov feem ntau mus rau hauv cov ntaub ntawv lossis lwm qhov chaw thiab feem ntau tos rau cov lus teb.

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Nws tsuas zaum thiab tos. Nws tsis zoo heev. Thaum 100.000 tus neeg siv tuaj, nws nyuaj heev rau peb. Yog li cia peb siv ib daim ntawv thov yooj yim ua piv txwv. Peb yuav saib cov duab, piv txwv li, ntawm miv. Tab sis peb yuav tsis tsuas yog tshawb nrhiav, peb yuav nthuav cov ntsiab lus thiab, yog tias tus neeg siv tshawb nrhiav "kittens," peb yuav pom miv, miv furry, thiab lwm yam. Ua ntej, peb yuav tsum tau txais cov ntaub ntawv thov ntawm lub backend. Nws zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Ob kab tso cai rau koj tuaj nqa GET tsis txwv, tsis muaj teeb meem. Tom ntej no, cia peb hais tias, los ntawm cov ntaub ntawv nrog lub cim rau lo lus tseem ceeb thiab txuas ntxiv, peb tau txais cov ntaub ntawv no siv cov lus nug SQL tsis tu ncua. Nws yog qhov yooj yim. Nws zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Txuas lub tsev qiv ntawv resty.mysql, uas peb twb muaj nyob rau hauv cov khoom siv. Peb tsis tas yuav nruab dab tsi, txhua yam yog npaj txhij. Peb qhia yuav ua li cas txuas thiab ua cov lus nug SQL:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Nws yog me ntsis ntshai ntawm no, tab sis txhua yam ua haujlwm. Ntawm no 10 yog qhov txwv. Peb rub tawm 10 qhov nkag, peb tub nkeeg, peb tsis xav qhia ntxiv. Kuv tsis nco qab txog qhov txwv hauv SQL.

Tom ntej no peb pom cov duab rau tag nrho cov lus nug. Peb sau ib pawg ntawm kev thov thiab sau ib lub rooj Lua hu reqs, thiab peb ua ngx.location.capture_multi.

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Tag nrho cov kev thov no raug xa mus ua ke, thiab cov lus teb raug xa rov qab rau peb. Lub sijhawm ua haujlwm yog sib npaug rau lub sijhawm teb ntawm qhov qeeb tshaj plaws. Yog tias peb txhua tus tua hauv 50 milliseconds, thiab peb xa ib puas qhov kev thov, ces peb yuav tau txais cov lus teb hauv 50 milliseconds.

Txij li thaum peb tub nkeeg thiab tsis xav sau HTTP thiab caching tuav, peb yuav ua rau NGINX ua txhua yam rau peb. Raws li koj pom, muaj kev thov rau url/fetch, nws nyob ntawm no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Peb ua kom yooj yim proxy_pass, peb qhia qhov chaw cache, yuav ua li cas, thiab txhua yam ua haujlwm rau peb.

Tab sis qhov no tsis txaus, peb tseem yuav tsum muab cov ntaub ntawv rau tus neeg siv. Lub tswv yim yooj yim tshaj plaws yog txhawm rau txheeb xyuas txhua yam hauv JSON, yooj yim, hauv ob kab. Peb muab Cov Ntsiab Lus Hom, peb muab JSON.

Tab sis muaj ib qho nyuaj: tus neeg siv tsis xav nyeem JSON. Peb yuav tsum nyiam cov neeg tsim tawm hauv ntej. Qee zaum peb tsis xav ua qhov no thaum xub thawj. Thiab cov kws tshaj lij SEO yuav hais tias yog peb tab tom nrhiav cov duab, ces nws tsis muaj teeb meem rau lawv. Thiab yog tias peb muab qee cov ntsiab lus rau lawv, lawv yuav hais tias peb lub tshuab tshawb nrhiav tsis ntsuas dab tsi.

Yuav ua li cas txog nws? Tau kawg, peb yuav muab cov neeg siv HTML. Tsim los ntawm tes tsis yog comme il faut, yog li peb xav siv templates. Muaj ib lub tsev qiv ntawv rau qhov no lua-resty-template.

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Tej zaum koj twb pom peb tsab ntawv txaus ntshai OPM. OpenResty los nrog nws tus kheej pob tus thawj tswj hwm, uas koj tuaj yeem nruab ib pawg ntawm cov qauv sib txawv, tshwj xeeb, lua-resty-template. Qhov no yog lub cav qauv yooj yim, zoo ib yam li Django templates. Nyob ntawd koj tuaj yeem sau cov lej thiab ua qhov hloov pauv hloov pauv.

Yog li ntawd, txhua yam yuav zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Peb muab cov ntaub ntawv thiab muab cov qauv, dua hauv ob kab. Tus neeg siv zoo siab, nws tau txais miv. Txij li thaum peb nthuav qhov kev thov, nws kuj tau txais lub foob plaub rau kittens. Koj yeej tsis paub, tej zaum nws tab tom nrhiav raws nraim qhov no, tab sis tsis tuaj yeem tsim nws qhov kev thov kom raug.

Txhua yam yog txias, tab sis peb tab tom txhim kho thiab tsis xav qhia nws rau cov neeg siv. Wb ua qhov kev tso cai. Txhawm rau ua qhov no, cia saib yuav ua li cas NGINX tswj qhov kev thov hauv OpenResty cov lus:

  • Thawj theem - nkag, thaum tus neeg siv nyuam qhuav tuaj txog, thiab peb saib nws los ntawm headers, los ntawm IP chaw nyob, thiab los ntawm lwm cov ntaub ntawv. Peb tuaj yeem txiav nws tam sim yog tias peb tsis nyiam nws. Qhov no tuaj yeem siv rau kev tso cai, lossis yog tias peb tau txais ntau qhov kev thov, peb tuaj yeem txiav lawv yooj yim ntawm theem no.
  • sau dua tshiab. Peb rov sau qee cov ntaub ntawv thov.
  • cov ntsiab lus. Peb xa cov ntsiab lus rau tus neeg siv.
  • headers lim. Peb hloov cov lus teb headers. Yog peb siv proxy_pass, peb tuaj yeem sau qee cov ntawv sau ua ntej muab rau tus neeg siv.
  • lub cev lim. Peb tuaj yeem hloov lub cev.
  • teev - kaw lus. Koj tuaj yeem sau cov cav hauv elasticsearch yam tsis muaj txheej ntxiv.

Peb qhov kev tso cai yuav zoo li no:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Peb mam li ntxiv qhov no rau tus ntawd location, uas peb tau piav ua ntej, thiab muab cov cai hauv qab no rau hauv:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Peb saib seb peb puas muaj lub ncuav qab zib token. Yog tsis yog, peb thov kev tso cai. Cov neeg siv yog cunning thiab twv tau tias lawv yuav tsum tau teem ib lub ncuav qab zib token. Yog li ntawd, peb tseem yuav muab tso rau hauv Redis:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Txoj cai rau kev ua haujlwm nrog Redis yog qhov yooj yim heev thiab tsis txawv ntawm lwm hom lus. Nyob rau tib lub sijhawm, txhua qhov kev tawm tswv yim / tawm, ntawm no thiab muaj, tsis thaiv. Yog tias koj sau synchronous code, nws ua haujlwm asynchronously. Yuav luag zoo li gevent, tab sis ua tau zoo.

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Cia peb ua qhov kev tso cai nws tus kheej:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Peb hais tias peb yuav tsum tau nyeem lub cev ntawm qhov kev thov. Peb tau txais POST cov lus sib cav thiab xyuas tias tus ID nkag mus thiab lo lus zais yog lawm. Yog tias lawv tsis raug, peb thov koj rau kev tso cai. Thiab yog tias yog, ces sau lub token hauv Redis:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Tsis txhob hnov ​​​​qab teeb lub ncuav qab zib, qhov no kuj ua tiav hauv ob kab:

OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Cov piv txwv yog yooj yim thiab speculative. Tau kawg, peb yuav tsis ua ib qho kev pabcuam uas qhia cov neeg miv. Tab sis leej twg paub peb. Yog li cia peb mus dhau dab tsi tuaj yeem ua tiav hauv kev tsim khoom.

  • Minimalist backend. Qee lub sij hawm peb yuav tsum tau tso tawm me ntsis ntawm cov ntaub ntawv mus rau lub backend: qhov chaw peb yuav tsum tau ntxig ib hnub, qhov chaw peb yuav tsum tau tso saib ib daim ntawv teev npe, hais tias pes tsawg tus neeg siv nyob rau hauv lub site tam sim no, xa ib lub txee lossis cov txheeb cais. Tej yam me me. Qee qhov me me tuaj yeem ua tau yooj yim heev. Qhov no yuav ua rau nws ceev, yooj yim thiab zoo heev.
  • Cov ntaub ntawv ua ntej. Qee zaum peb xav embed tshaj tawm rau hauv peb nplooj ntawv, thiab peb tau txais qhov kev tshaj tawm no siv API thov. Qhov no yooj yim heev ua ntawm no. Peb tsis thauj peb lub backend, uas twb zaum thiab ua hauj lwm nyuaj. Koj tuaj yeem khaws nws thiab sau nws ntawm no. Peb tuaj yeem cobble ua ke qee qhov JS lossis, qhov sib txawv, uncouple nws thiab preprocess ib yam dab tsi ua ntej muab rau tus neeg siv.
  • Facade rau microservice. Qhov no kuj yog ib rooj plaub zoo heev, kuv siv nws. Ua ntej ntawd, kuv tau ua haujlwm ntawm Tenzor, ib lub tuam txhab ua haujlwm nrog kev tshaj tawm xov xwm hluav taws xob thiab muab kev tshaj tawm rau kwv yees li ib nrab ntawm cov koom haum raug cai hauv lub tebchaws. Peb tau tsim ib qho kev pabcuam, ntau yam tau ua tiav nyob rau ntawd siv tib lub tshuab: routing, kev tso cai thiab ntau dua.
    OpenResty tuaj yeem siv los ua cov kua nplaum rau koj cov microservices, muab ib qho kev nkag mus rau txhua yam thiab ib qho interface. Txij li thaum microservices tuaj yeem sau rau hauv txoj hauv kev uas koj muaj Node.js ntawm no, PHP ntawm no, Python ntawm no, qee qhov Erlang ntawm no, peb nkag siab tias peb tsis xav rov sau dua tib txoj cai txhua qhov chaw. Yog li ntawd, OpenResty tuaj yeem txuas rau pem hauv ntej.
  • Statistics thiab analytics. Feem ntau NGINX nyob ntawm qhov nkag, thiab txhua qhov kev thov mus dhau nws. Nws yog nyob rau hauv qhov chaw no nws yog heev yooj yim mus sau. Koj tuaj yeem xam ib yam dab tsi tam sim ntawd thiab xa nws mus rau qhov chaw, piv txwv li, Elasticsearch, Logstash, lossis tsuas yog sau rau hauv lub cav thiab xa mus rau qhov chaw.
  • Multi-neeg siv tshuab. Piv txwv li, kev ua si hauv online kuj zoo heev los ua. Niaj hnub no hauv Cape Town, Alexander Gladysh yuav tham txog yuav ua li cas sai sai prototype ib multiplayer game siv OpenResty.
  • Thov Filtering (WAF). Niaj hnub no nws yog fashionable los ua txhua yam ntawm web application firewalls; muaj ntau yam kev pab cuam uas muab rau lawv. Siv OpenResty, koj tuaj yeem ua rau koj tus kheej lub vev xaib firewall uas yooj yim thiab yooj yim lim thov raws li koj xav tau. Yog tias koj muaj Python, tom qab ntawd koj nkag siab tias PHP yuav tsis raug txhaj rau koj, tshwj tsis yog, ntawm chav kawm, koj spawn nws nyob qhov twg los ntawm lub console. Koj paub tias koj muaj MySQL thiab Python. Tej zaum, lawv yuav sim ua qee yam ntawm phau ntawv hla tebchaws thiab txhaj qee yam rau hauv cov ntaub ntawv. Yog li ntawd, koj tuaj yeem lim tawm cov lus nug txawv txawv sai thiab pheej yig nyob rau pem hauv ntej.
  • Zej Zog. Txij li thaum OpenResty yog tsim los ntawm NGINX, nws muaj nyiaj ntxiv - qhov no NGINX zej zog. Nws yog qhov loj heev, thiab ib feem ntawm cov lus nug uas koj yuav muaj thaum xub thawj tau raug daws los ntawm NGINX zej zog.

    Lus developers. Nag hmo kuv tham nrog cov txiv neej uas tuaj rau hnub ua haujlwm HighLoad++ thiab hnov ​​tias tsuas yog Tarantool sau hauv Lua. Qhov no tsis muaj tseeb, ntau ntau tau sau rau hauv Lua. Piv txwv li: OpenResty, Prosody XMPP server, Love2D game engine, Lua scripted in Warcraft thiab lwm qhov. Muaj ntau tus neeg tsim tawm Lua, lawv muaj lub zej zog loj thiab teb. Tag nrho kuv cov lus nug Lua tau daws tsis pub dhau ob peb teev. Thaum koj sau rau hauv daim ntawv xa ntawv, cov lus nyob hauv ob peb feeb twb muaj ntau cov lus teb, piav qhia txog dab tsi thiab yuav ua li cas, dab tsi yog dab tsi. Nws zoo heev. Hmoov tsis zoo, lub zej zog ntawm sab ntsuj plig zoo li no tsis nyob txhua qhov chaw.
    Muaj GitHub rau OpenResty, qhov twg koj tuaj yeem qhib qhov teeb meem yog tias muaj qee yam tawg. Muaj cov npe xa ntawv hauv Google Pawg, qhov twg koj tuaj yeem tham txog cov teeb meem dav dav, muaj cov npe xa ntawv hauv Suav - koj tsis paub, tej zaum koj tsis hais lus Askiv, tab sis koj paub Suav.

Cov txiaj ntsim tau los

  • Kuv vam tias kuv muaj peev xwm qhia tau tias OpenResty yog ib qho yooj yim heev tsim rau lub vev xaib.
  • Nws muaj qhov txwv tsis pub nkag mus, vim tias cov cai zoo ib yam li peb sau, cov lus yooj yim heev thiab minimalistic.
  • Nws muab asynchronous I / O yam tsis muaj kev hu rov qab, peb yuav tsis muaj cov noodles zoo li peb tuaj yeem sau qee zaum hauv NodeJS.
  • Nws muaj kev xa tawm yooj yim, vim peb tsuas yog xav tau NGINX nrog cov qauv tsim nyog thiab peb cov cai, thiab txhua yam ua haujlwm tam sim ntawd.
  • Loj thiab teb cov zej zog.

Kuv tsis tau qhia meej tias yuav ua li cas routing ua tiav, nws tau dhau los ua ib zaj dab neeg ntev heev.

Ua tsaug rau koj txoj kev paub!

Ua si video

Vladimir Protasov - OpenResty: tig NGINX rau hauv daim ntawv thov kev pabcuam puv npo

Tau qhov twg los: www.hab.com

Ntxiv ib saib