OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi pihaHoʻopuka hou mākou i ka transcript o ka hōʻike mai ka hālāwai kūkā Hoʻouka kiʻekiʻe++ 2016, i mālama ʻia ma Skolkovo kokoke i Moscow ma Nowemapa 7-8 i ka makahiki i hala. ʻO Vladimir Protasov haʻi i ka hoʻonui ʻana i ka hana NGINX me OpenResty a me Lua.

Aloha kākou a pau, ʻo Vladimir Protasov koʻu inoa, hana wau no Parallels. E haʻi iki wau iā ʻoe noʻu iho. Hoʻohana au i ʻekolu hapaha o koʻu ola e kākau ana i nā code. Ua lilo au i mea papahana i ke kumu ma ke ʻano maoli: ʻike wau i kekahi manawa i ka code i kaʻu mau moeʻuhane. ʻO ka hapahā o ke ola ka hoʻomohala ʻana i ka ʻoihana, kākau i nā code e hele pololei i ka hana. He code i hoʻohana ʻia e kekahi o ʻoukou akā ʻaʻole ʻike.

E hōʻike iā ʻoe i ka ʻino. I koʻu wā liʻiliʻi liʻiliʻi, hele mai au a hāʻawi mai lākou iaʻu i kēia mau ʻikepili terabyte ʻelua. Aia ia i kēia manawa no kēlā me kēia kanaka highload. Ua hele au i nā ʻaha kūkā a nīnau: "E nā kāne, e haʻi mai iaʻu, he ʻikepili nui kāu, ʻoluʻolu nā mea āpau? ʻEhia mau kumu i laila? Pane mai lākou iaʻu: "He 100 gigabytes kā mākou!" Ua ʻōlelo au: "Maikaʻi, 100 gigabytes!" A noʻonoʻo wau iaʻu iho pehea e mālama pono ai i ka maka poker. Manaʻo ʻoe, ʻae, ʻoluʻolu nā kāne, a laila e hoʻi mai ʻoe e ʻimi me kēia mau ʻikepili multi-terabyte. A ʻo kēia ke keiki liʻiliʻi. Hiki iā ʻoe ke noʻonoʻo i ke ʻano o ia mea?

ʻIke au ma mua o 20 mau ʻōlelo papahana. ʻO kēia kaʻu mea e noʻonoʻo ai i ka wā o ka hana. Hāʻawi lākou iā ʻoe i ke code ma Erlang, ma C, ma C ++, ma Lua, ma Python, ma Ruby, ma kahi mea ʻē aʻe, a pono ʻoe e ʻoki i nā mea āpau. Ma keʻano laulā, pono wau. ʻAʻole hiki ke helu i ka helu pololei, akā ma kahi o 20 ua nalowale ka helu.

No ka mea ʻike nā poʻe a pau i ke ʻano o Parallels a me kā mākou hana, ʻaʻole wau e kamaʻilio e pili ana i ke ʻano maikaʻi o mākou a me kā mākou hana. E haʻi wale aku wau iā mākou he 13 mau keʻena a puni ka honua, ʻoi aku ma mua o 300 mau limahana, hoʻomohala ma Moscow, Tallinn a me Malta. Inā makemake ʻoe, hiki iā ʻoe ke lawe a neʻe i Malta, inā he anu i ka hoʻoilo a pono ʻoe e hoʻomaʻamaʻa i kou kua.

ʻO ka kikoʻī, kākau kā mākou ʻoihana ma Python 2. Aia mākou i ka ʻoihana a ʻaʻohe manawa e hoʻolauna i nā ʻenehana loea, no laila pilikia mākou. Loaʻa iā mākou ʻo Django, no ka mea, loaʻa iā ia nā mea a pau, a lawe mākou i ka keu a hoʻolei aku. Eia kekahi MySQL, Redis a me NGINX. Loaʻa iā mākou nā mea maikaʻi ʻē aʻe. Loaʻa iā mākou ʻo MongoDB, he mau rapeti kā mākou e holo nei, ʻaʻohe mea - akā ʻaʻole iaʻu, ʻaʻole wau e hana.

OpenResty

Ua haʻi wau noʻu iho. E ʻike kākou i kaʻu e kamaʻilio nei i kēia lā:

  • He aha ka OpenResty a he aha ka mea e ʻai ʻia ai?
  • No ke aha e hana hou ai i ka huila inā loaʻa iā mākou Python, NodeJS, PHP, Go a me nā mea ʻoluʻolu ʻē aʻe e hauʻoli ai nā mea a pau?
  • A he mau hiʻohiʻona ola maoli. Pono wau e ʻoki i ka hōʻike i lalo, no ka mea ua loaʻa iaʻu no 3,5 mau hola, no laila e liʻiliʻi nā hiʻohiʻona.

ʻO OpenResty ka NGINX. Mahalo iā ia, loaʻa iā mākou kahi kikowaena pūnaewele piha, i kākau maikaʻi ʻia, hana wikiwiki. Manaʻo wau ka hapa nui o mākou e hoʻohana i ka NGINX i ka hana. Ua ʻike ʻoe he wikiwiki a ʻoluʻolu ʻo ia. Ua hana lākou i ka synchronous I / O i loko o ia mea, no laila ʻaʻole pono mākou e hoʻokele i kekahi mea ma ke ʻano like me ke kaʻa ʻana o gevent ma Python. He ʻoluʻolu, ʻoluʻolu ʻo Gevent, akā inā kākau ʻoe i ka C-code a hewa kekahi mea me gevent, e hele pupule ʻoe i ka debugging ia. Ua loaʻa iaʻu ka ʻike: ʻelua mau lā holoʻokoʻa e ʻike ai i ka mea i hewa ma laila. Inā ʻaʻole i ʻeli kekahi no kekahi mau pule ma mua, loaʻa ka pilikia, kākau iā ia ma ka Pūnaewele, a ʻaʻole i loaʻa iā Google, a laila ua hele pupule loa mākou.

Ua hana mua ʻo NGINX i ka cache a me ka ʻike static. ʻAʻole pono ʻoe e hopohopo e pili ana i ka hana ʻana i ke kanaka, i ʻole ʻoe e lohi i kahi wahi, i ʻole ʻoe e nalowale i nā mea wehewehe ma kahi. Maʻalahi loa ʻo Nginx e kau, ʻaʻole pono ʻoe e noʻonoʻo i ka mea e lawe ai - WSGI, PHP-FPM, Gunicorn, Unicorn. Ua hoʻokomo ʻia ʻo Nginx, hāʻawi ʻia i nā admins, ʻike lākou pehea e hana ai me ia. Ke noi nei ʻo Nginx i kahi ala i hoʻonohonoho ʻia. E kamaʻilio wau e pili ana i kēia ma hope iki. I ka pōkole, loaʻa iā ia kahi ʻāpana i ka wā i ʻae wale ai ʻo ia i ka noi, i ka wā i hana ai a i ka wā i hāʻawi ai ʻo ia i ka ʻike i ka mea hoʻohana.

He ʻoluʻolu ʻo Nginx, akā hoʻokahi pilikia: ʻaʻole hiki ke maʻalahi me kēlā mau hiʻohiʻona maikaʻi a nā poʻe i hoʻokomo i loko o ka config, ʻoiai hiki ke hana maʻamau. ʻAʻole lawa kēia mana. No laila, ʻo ka poʻe mai Taobao i kekahi manawa, manaʻo wau ma kahi o ʻewalu mau makahiki i hala, ua kūkulu ʻo Lua i loko. He aha kāna hāʻawi?

  • ka nui. He liʻiliʻi. Hāʻawi ʻo LuaJIT ma kahi o 100-200 kilobytes o ka hoʻomanaʻo ma luna a me ka liʻiliʻi o ka hana ma luna.
  • ʻO ka wikiwiki. Kokoke ka unuhi ʻōlelo LuaJIT iā C ma nā ʻano he nui, ma kekahi mau mea e nalo iā Java, ma kekahi e loaʻa iā ia. No kekahi manawa, ua manaʻo ʻia ʻo ia ke kūlana o ka noʻonoʻo, ka mea hōʻuluʻulu JIT maikaʻi loa. I kēia manawa aia nā mea ʻoluʻolu, akā kaumaha loa lākou, no ka laʻana, ka V8 like. ʻOi aku ka wikiwiki o kekahi mau unuhi ʻōlelo JS a me Java HotSpot ma kekahi mau wahi, akā nalo mau i kekahi mau wahi.
  • Maʻalahi e aʻo. Inā loaʻa iā ʻoe, e ʻōlelo, kahi codebase Perl a ʻaʻole ʻoe ʻo Booking, ʻaʻole ʻoe e ʻike i nā polokalamu polokalamu Perl. No ka mea, ʻaʻole lākou i laila, ua lawe ʻia lākou a pau, a he lōʻihi a paʻakikī ke aʻo ʻana iā lākou. Inā makemake ʻoe i nā polokalamu polokalamu no kekahi mea ʻē aʻe, pono paha lākou e aʻo hou a loaʻa paha. Ma ka hihia o Lua, maʻalahi nā mea a pau. Hiki ke aʻo ʻia ka lua e kekahi ʻōpio i ʻekolu lā. Ma kahi o ʻelua hola kaʻu e ʻike ai. ʻElua hola ma hope mai, ua kākau mua wau i ke code i ka hana. Ma kahi o hoʻokahi pule ma hope mai, hele pololei ʻo ia i ka hana a haʻalele.

ʻO ka hopena, ua like ia me kēia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Nui ma ʻaneʻi. Ua hōʻuluʻulu ʻo OpenResty i kahi pūʻulu o nā modula, nā luash a me nā engins. A ua mākaukau ʻoe i nā mea a pau - kau ʻia a hana.

examples

Ua lawa nā huaʻōlelo, e neʻe kākou i ke code. Eia kekahi Hello World:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

He aha ko laila? ʻo kēia ka wahi engins. ʻAʻole mākou hopohopo, ʻaʻole mākou i kākau i kā mākou alahele ponoʻī, ʻaʻole mākou e lawe i kahi mea i hoʻomākaukau ʻia - ua loaʻa iā mākou ma NGINX, ola maikaʻi mākou a palaualelo.

content_by_lua_block he poloka ia e ʻōlelo ana ke lawelawe nei mākou i ka ʻike me ka palapala Lua. Lawe mākou i kahi hoʻololi engines remote_addr a hoʻoheheʻe i loko string.format. Ua like keia me sprintf, ma Lua wale no, pololei wale no. A hāʻawi mākou i ka mea kūʻai aku.

ʻO ka hopena, e like me kēia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Akā, hoʻi i ke ao maoli. I ka hana ʻana, ʻaʻohe mea e hoʻolaha iā Hello World. Hele pinepine kā mākou noi i ka waihona a i ʻole ma kahi ʻē aʻe a ʻo ka hapa nui o ka manawa ke kali nei i kahi pane.

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Noho wale a kali. ʻAʻole maikaʻi loa. Ke hele mai nā mea hoʻohana 100.000, paʻakikī loa iā mākou. No laila, e hoʻohana kākou i kahi noi maʻalahi i laʻana. E ʻimi mākou i nā kiʻi, no ka laʻana, nā pōpoki. ʻAʻole wale mākou e ʻimi wale, e hoʻonui mākou i nā huaʻōlelo a, inā ʻimi ka mea hoʻohana i nā "kittens", e ʻike mākou i nā pōpoki, fluffies, a pēlā aku. Pono mua mākou e kiʻi i ka ʻikepili noi ma ka hope. Ua like me keia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

ʻElua laina e ʻae iā ʻoe e kiʻi i nā ʻāpana GET, ʻaʻohe pilikia. A laila mākou, no ka laʻana, e kiʻi i kēia ʻike mai kahi waihona me kahi papa ma ka huaʻōlelo a me ka hoʻonui ʻana me ka hoʻohana ʻana i kahi nīnau SQL maʻamau. He mea maʻalahi nā mea a pau. Penei kona ano:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Hoʻohui mākou i ka waihona resty.mysql, i loaʻa iā mākou i loko o ka pahu. ʻAʻole pono mākou e hoʻokomo i kekahi mea, ua mākaukau nā mea a pau. E wehewehe pehea e hoʻohui a hana i kahi nīnau SQL:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

He mea weliweli iki, akā hana. Eia ka 10 ka palena. Huki mākou i nā moʻolelo 10, palaualelo mākou, ʻaʻole makemake mākou e hōʻike hou aku. Ma SQL, poina au i ka palena.

A laila, ʻike mākou i nā kiʻi no nā nīnau a pau. ʻOhi mākou i kahi hui o nā noi a hoʻopiha i kahi papa Lua i kapa ʻia reqs, a hana ngx.location.capture_multi.

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Hele like kēia mau noi a pau, a hoʻihoʻi ʻia nā pane iā mākou. Ua like ka manawa holo me ka manawa pane o ka mea lohi. Inā pana mākou a pau i 50 milliseconds, a hoʻouna mākou i hoʻokahi haneli mau noi, a laila e loaʻa iā mākou kahi pane i 50 milliseconds.

No ka mea, palaualelo mākou a ʻaʻole makemake mākou e kākau i ka lawelawe ʻana a me ka cache HTTP, e hana mākou iā NGINX i nā mea āpau no mākou. E like me kāu i ʻike ai, aia kahi noi no url/fetch, eia oia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Hana maʻalahi mākou proxy_pass, e wehewehe i kahi e hūnā ai, pehea e hana ai, a hana nā mea a pau iā mākou.

Akā ʻaʻole lawa kēia, pono mākou e hāʻawi i ka ʻikepili i ka mea hoʻohana. ʻO ka manaʻo maʻalahi ka hoʻopili ʻana i nā mea āpau iā JSON, maʻalahi, ma nā laina ʻelua. Hāʻawi mākou i ka Content-Type, hāʻawi mākou iā JSON.

Akā hoʻokahi pilikia: ʻaʻole makemake ka mea hoʻohana e heluhelu iā JSON. Pono mākou e huki i nā mea hoʻomohala mua. I kekahi manawa ʻaʻole mākou makemake e hana i ka hana mua. ʻAe, a e ʻōlelo ka poʻe loea SEO inā mākou e ʻimi nei i nā kiʻi, a laila ʻaʻole lākou mālama. A inā hāʻawi mākou iā lākou i kekahi ʻike, e ʻōlelo lākou ʻaʻole i kuhikuhi kā mākou mau ʻenekini i kekahi mea.

He aha ka hana me ia? ʻOiaʻiʻo, e hāʻawi mākou i ka mea hoʻohana HTML. ʻAʻole comme il faut ka hana ʻana me nā lima, no laila makemake mākou e hoʻohana i nā mamana. Aia kahi waihona no kēia lua-resty-template.

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Ua ʻike paha ʻoe i nā leka weliweli ʻekolu OPM. Hele mai ʻo OpenResty me kāna luna pūʻulu ponoʻī, kahi e hiki ai iā ʻoe ke hoʻokomo i kahi pūʻulu o nā modula like ʻole, ʻo ia hoʻi, lua-resty-template. He mīkini maʻalahi maʻalahi e like me Django templates. Ma laila hiki iā ʻoe ke kākau i ke code a hana i ka hoʻololi hoʻololi.

ʻO ka hopena, e nānā nā mea a pau e like me kēia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Lawe mākou i ka ʻikepili a hoʻihoʻi hou i ka template ma nā laina ʻelua. Hauʻoli ka mea hoʻohana, loaʻa nā pōpoki. Ma muli o ko mākou hoʻonui ʻana i ka noi, ua loaʻa iā ia kahi sila huluhulu no nā pōpoki. ʻAʻole ʻoe i ʻike, aia paha ʻo ia e ʻimi nei, akā ʻaʻole hiki iā ia ke hoʻopuka pololei i kāna noi.

Maikaʻi nā mea a pau, akā ke kūkulu nei mākou, ʻaʻole makemake mākou e hōʻike i nā mea hoʻohana. E hana kāua i ka mana. No ka hana ʻana i kēia, e ʻike kākou pehea e lawelawe ai ʻo NGINX i ka noi ma nā ʻōlelo o OpenResty:

  • Māhele mua - ka hookipaia, i ka wā i hele mai ai ka mea hoʻohana, a nānā mākou iā ia ma nā poʻomanaʻo, ma ka helu IP, e nā ʻikepili ʻē aʻe. Hiki iā ʻoe ke ʻoki koke inā ʻaʻole mākou makemake. Hiki ke hoʻohana ʻia kēia no ka ʻae ʻana, a i ʻole e loaʻa iā mākou nā noi he nui, hiki iā mākou ke ʻoki maʻalahi iā lākou i kēia māhele.
  • e kākau hou. Ke kākau hou ʻana i kekahi ʻikepili noi.
  • maʻiʻo. Hāʻawi mākou i ka ʻike i ka mea hoʻohana.
  • kānana poʻomanaʻo. E hoʻololi i nā pane pane. Inā mākou i hoʻohana proxy_pass, hiki iā mākou ke kākau hou i kekahi mau poʻomanaʻo ma mua o ka hāʻawi ʻana i ka mea hoʻohana.
  • kānana kino. Hiki iā mākou ke hoʻololi i ke kino.
  • mōʻaukala - logging. Hiki ke kākau i nā lāʻau i ka elasticsearch me ka ʻole o kahi papa.

ʻO kā mākou ʻae ʻana e like me kēia:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

E hoʻohui mākou i kēia i kēlā location, a mākou i wehewehe ai ma mua, a kau i kēia code ma laila:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Nānā mākou e ʻike inā loaʻa iā mākou kahi hōʻailona kuki. Inā ʻaʻole, a laila hoʻolei mākou i ka ʻae. Maalea nā mea hoʻohana a manaʻo paha he pono ke hoʻonohonoho ʻia kahi hōʻailona kuki. No laila, e hoʻokomo pū mākou iā Redis:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

He maʻalahi loa ke code no ka hana pū me Redis a ʻaʻohe ʻokoʻa mai nā ʻōlelo ʻē aʻe. I ka manawa like, nā mea hoʻokomo / puka a pau, he aha ka mea ma laila, he aha ma aneʻi, ʻaʻole ia e pale. Inā kākau ʻoe i ke code synchronous, a laila hana ʻole ia. E like me gevent, hana maikaʻi wale nō.

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

E hana kāua i ka ʻae iā ia iho:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

'Ōlelo mākou he pono mākou e heluhelu i ke kino noi. Loaʻa iā mākou nā manaʻo hoʻopaʻapaʻa POST, e nānā inā pololei ka inoa inoa a me ka ʻōlelo huna. Inā hewa ʻole, a laila hoʻolei mākou i ka ʻae. A inā pololei lākou, a laila kākau mākou i ka hōʻailona iā Redis:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Mai poina e hoʻonoho i ke kuki, hana ʻia kēia ma nā laina ʻelua:

OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

He maʻalahi ka laʻana, speculative. ʻOiaʻiʻo, ʻaʻole mākou e hana i kahi lawelawe e hōʻike i nā pōpoki i nā kānaka. Akā ʻo wai ka mea ʻike iā mākou. No laila, e hele kākou i ka mea hiki ke hana i ka hana.

  • ʻO ke kua liʻiliʻi. I kekahi manawa pono mākou e hāʻawi i kahi ʻikepili i ka hope: ma kahi e pono ai mākou e hoʻololi i ka lā, ma kahi e pono ai mākou e hōʻike i kekahi ʻano papa inoa, e haʻi i ka nui o nā mea hoʻohana ma ka pūnaewele i kēia manawa, wili i kahi counter a i ʻole helu helu. He mea liʻiliʻi loa. Hiki ke hana maʻalahi i kekahi mau ʻāpana liʻiliʻi. E wikiwiki kēia, maʻalahi a maikaʻi.
  • Ka hana mua ʻikepili. I kekahi manawa makemake mākou e hoʻokomo i nā hoʻolaha ma kā mākou ʻaoʻao, a lawe mākou i kēia mau hoʻolaha me nā noi API. He mea maʻalahi loa kēia hana ma ʻaneʻi. ʻAʻole mākou e hoʻouka i kā mākou backend, ke hana ikaika nei. Hiki iā ʻoe ke ʻohi a hōʻiliʻili ma ʻaneʻi. Hiki iā mākou ke hoʻoheheʻe i kekahi JS a i ʻole, unstick, preprocess kekahi mea ma mua o ka hāʻawi ʻana i ka mea hoʻohana.
  • Facade no microservice. He hihia maikaʻi loa kēia, ua hoʻokō wau. Ma mua o kēlā, ua hana au no Tenzor, kahi hui hōʻike uila e hāʻawi ana i ka hōʻike no ka hapalua o nā hui kānāwai ma ka ʻāina. Ua hana mākou i kahi lawelawe, nui nā mea i hana ʻia ma laila me ka hoʻohana ʻana i ka mīkini like: ke alahele, ka ʻae ʻana, a me nā mea hou aku.
    Hiki ke hoʻohana ʻia ʻo OpenResty e like me ke kāpili no kāu microservices e hāʻawi i hoʻokahi ala i nā mea āpau a me kahi kikowaena hoʻokahi. No ka mea hiki ke kākau ʻia nā microservices ma ke ʻano he Node.js ʻoe ma aneʻi, loaʻa iā ʻoe ka PHP ma aneʻi, loaʻa iā ʻoe ka Python ma aneʻi, aia kekahi mea Erlang ma aneʻi, maopopo mākou ʻaʻole makemake mākou e kākau hou i ka code like ma nā wahi āpau. No laila, hiki ke hoʻopili ʻia ʻo OpenResty i mua.

  • Heluhelu a me ka ʻikepili. ʻO ka maʻamau ka NGINX ma ka puka komo, a hele nā ​​​​noi a pau. Aia ma kēia wahi kahi kūpono loa e ʻohi ai. Hiki iā ʻoe ke helu koke i kekahi mea a hoʻolei i kahi, no ka laʻana, ka Elasticsearch like, Logstash, a i ʻole e kākau wale i ka log a laila e hoʻouna i kahi.
  • Pūnaehana Mea Hoʻohana Nui. No ka laʻana, maikaʻi loa nā pāʻani pūnaewele e hana. I kēia lā ma Cape Town, e haʻi aku ʻo Alexander Gladysh iā ʻoe pehea e hana wikiwiki ai i kahi pāʻani Multiplayer me OpenResty.
  • Noi ke kānana (WAF). I kēia manawa he mea maʻamau ka hana ʻana i nā ʻano pānaehana noi pūnaewele, nui nā lawelawe e hāʻawi iā lākou. Me ke kōkua o OpenResty, hiki iā ʻoe ke hoʻolilo iā ʻoe iho i pānaehana noi pūnaewele, e kānana maʻalahi a maʻalahi i nā noi e like me kāu mau koi. Inā loaʻa iā ʻoe ka Python, a laila hoʻomaopopo ʻoe ʻaʻole e hoʻokomo ʻia ʻo PHP iā ʻoe, ke ʻole, ʻoiaʻiʻo, hoʻopaʻa ʻoe iā ia ma nā wahi āpau mai ka console. ʻIke ʻoe iā ʻoe MySQL a me Python. Malia paha, maanei hiki iā lākou ke hoʻāʻo e hana i kekahi ʻano kaʻahele papa kuhikuhi a hoʻokomo i kekahi mea i loko o ka waihona. No laila, hiki iā ʻoe ke kānana i nā noi leo me ka wikiwiki ma ke alo.
  • Kaiāulu. No ka mea ua hoʻokumu ʻia ʻo OpenResty ma NGINX, loaʻa iā ia kahi bonus - ʻo ia kaiaulu NGINX. Nui loa ia, a ua pane mua ʻia ka nui o nā nīnau āu e loaʻa ai i ka hui NGINX.

    Nā mea hoʻomohala lua. I nehinei ua kamaʻilio au me nā poʻe i hele mai i ka lā aʻo HighLoad ++ a lohe wau ʻo Tarantool wale nō i kākau ʻia ma Lua. ʻAʻole pēlā, nui nā mea i kākau ʻia ma Lua. Nā laʻana: OpenResty, Prosody XMPP server, Love2D game engine, Lua i kākau ʻia ma Warcraft a me nā wahi ʻē aʻe. Nui nā mea hoʻomohala Lua, he kaiāulu nui lākou a pane. Ua pane ʻia kaʻu mau nīnau Lua a pau i loko o kekahi mau hola. Ke kākau ʻoe i ka papa inoa leka, ʻoiaʻiʻo i loko o kekahi mau minuke ua nui nā pane, wehewehe lākou i ke aha a pehea, he aha. Maikaʻi. ʻO ka mea pōʻino, ʻaʻole i loaʻa kēlā ʻano kaiāulu ʻoiaʻiʻo ma nā wahi āpau.
    Loaʻa iā OpenResty ʻo GitHub, kahi e hiki ai iā ʻoe ke wehe i kahi pilikia inā haki kekahi mea. Aia kahi papa leka uila ma Google Groups kahi e hiki ai iā ʻoe ke kūkākūkā i nā pilikia maʻamau, aia kahi papa inoa leka uila ma ka ʻōlelo Kina - ʻaʻole ʻoe i ʻike, ʻaʻole paha ʻoe e ʻōlelo Pelekania, akā ua ʻike ʻoe i ka ʻōlelo Kina.

Nā hopena

  • Manaʻo wau ua hiki iaʻu ke haʻi aku ʻo OpenResty kahi ʻōnaehana pūnaewele kūpono loa.
  • He paepae haʻahaʻa kona komo ʻana, no ka mea ua like ke code me kā mākou e kākau ai, maʻalahi ka ʻōlelo a me ka minimalistic.
  • Hāʻawi ia i ka I/O asynchronous me ka ʻole callbacks, ʻaʻole mākou e loaʻa nā noodles e like me ka hiki iā mākou ke kākau i kekahi manawa ma NodeJS.
  • Loaʻa iā ia kahi hoʻonohonoho maʻalahi, no ka mea pono mākou i ka NGINX me ka module kūpono a me kā mākou code, a hana koke nā mea āpau.
  • Kaiāulu nui a pane.

ʻAʻole au i haʻi kikoʻī i ke ʻano o ka hana ʻana i ke alahele, ua lilo ia i moʻolelo lōʻihi loa.

Nā mea hou aku!


Vladimir Protasov - OpenResty: hoʻololi i ka NGINX i kahi kikowaena noi piha

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka