ááŽááŹááśááž áĄá
áŽáááşááśá
áŹá á
áŹááŹá¸áážááşáááşá¸ááᯠááťá˝ááşáŻááşáááŻáˇ ááźááşáááşááŻááşááąááŤáááşá ááąáŹáşá
áááŻááźááŻáˇáĄááŽá¸áážá Skolkovo áá˝ááş ááááşáážá
áş áááŻáááşáᏠá áááşááž á áááşáĄáá ááťááşá¸ááá˛áˇáááˇáş ááááá OpenResty áážááˇáş Lua ááźááˇáş NGINX ááŻááşááąáŹááşááťááşááᯠáááşáááŻáˇáááŻá¸ááťá˛áˇááááşááᯠááźáąáŹááźáááşá
áĄáŹá¸ááŻáśá¸áá˛áááşášáááŹá፠ááťá˝ááşááąáŹáˇáşááŹáááşá Vladimir Protasov ááŤá Parallels áážáŹ áĄááŻááşááŻááşááŤáááşá áááŻááˇáşáĄááźáąáŹááşá¸ áááşá¸áááşá¸ááźáąáŹááźáááşá ááťá˝ááşááąáŹáˇáşáááá˛áˇ ááąá¸ááŻáśááŻáśá¸ááŻáśááąáŹááşá ááŻááşááąá¸ááąááŹáá˛á áááááááąáŹáĄá ááááŻááááşááŹáá áşááąáŹááşááźá áşááŹáá˛áˇáááşá áá áşááŤáá áşááśáážáŹ áĄáááşáááşáá˛áážáŹ ááŻááşáá˝áąááᯠááźááşáá˛áˇááááşá ááá ááąá¸ááŻáśáá áşááŻáśáááş á ááşáážáŻáá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻááźá áşááźáŽá¸ ááŻááşááŻááşáážáŻáááŻáˇ áááŻááşáááŻááşáá˝áŹá¸ááąáŹ ááŻááşááᯠááąá¸ááŹá¸ááźááşá¸ááźá áşáááşá áááťááŻáˇá ááŻáśá¸ááąáááˇáş ááááá˛áˇááŻááşá
áááşááąáŹááşáááŻá¸áá˛áˇáᲠááááŤáá áąá ááťá˝ááşááąáŹáş áááşáááşááŻááşá¸á áááşááŹááźáŽá¸ áᎠterabyte databases áážá áşááŻááᯠááąá¸áááşá á¤ááąááŹáááş áá°áááŻááşá¸áĄáá˝ááş ááźááˇáşááŹá¸ááąáŹáááşááźá áşáááşá áá˝ááşááááˇáşáá˝áąááᯠáá˝áŹá¸ááźáŽá¸ááąáŹáˇ ááąá¸áááş âááąáŹááşáťáŹá¸áá˝áą ááźáąáŹááŤá áááşá¸áážáŹ ááąááŹáĄááźáŽá¸ááźáŽá¸ áážááááŹá¸á áĄáŹá¸ááŻáśá¸áĄáąá¸ááąá¸áá˛ááŹá¸á áááşá¸áážáŹ áĄááźáąá ááŻááşá áááşá¸ áááşááąáŹááşáážááá˛á áá°áááŻáˇá "ááŤáááŻáˇáážáŹ 100 áá áşááŤáááŻááşáážááááş!" "áĄáąá¸á 100 áá áşááŤáááŻááş!" ááźáŽá¸ááąáŹáˇ áá˛ááťááşááťááşáážáŹááᯠááąááąáááşáááş áááşáááŻáááşáááşáááá˛áááŻáᏠáááŻááˇáşáááŻááşáááŻááş á ááşá¸á áŹá¸áááááşá ááŻááşáááşá ááąáŹááşáá˝áąá áĄáąá¸áááşáááşáááşá ááźáŽá¸ááąáŹáˇ áááşá¸ááźááşááŹááźáŽá¸ áᎠmulti-terabyte ááąááŹááąáˇá áşáá˝áąáá˛áˇ áá˝áąá¸ááąááŹáá˛á ááźáŽá¸ááąáŹáˇ ááŤá áĄáááşáááşá¸ááźá áşááźááşá¸á áááşáá˛áˇáááŻáˇ áááŻááşáááşááᯠáááş á áááşáá°á¸ááźááˇáşáááŻááşááŤáááŹá¸á
ááááŻááááşá¸áááşá¸ááŹááŹá
ááŹá¸ 20 ááťáąáŹáşááᯠááŤáááááşá ááŤá áĄááŻááşáá˝ááşáážáŹ ááźááŻáá˝áąá¸ááŹá¸ááááˇáş áĄááŹááŤá áá°áááŻáˇá áááˇáşáĄáŹá¸ Erlangá C áá˝ááşá C++ áá˝ááşá Luaá Python áá˝ááşá Ruby áá˝ááşá áĄááźáŹá¸áĄááŹáá
áşááŻááŻáá˝ááş áááˇáşáĄáŹá¸ ááąá¸á áĄáŹá¸ááŻáśá¸áááŻááźááşáááŤáááşá ááąáá°ááťáĄáŹá¸ááźááˇáş á
á˝á˛á
á˝á˛áááşá¸áááşá¸á ááááşá¸ááááşá¸áĄáááĄááťááᯠáá˝ááşááťááşáááŻáˇ ááááąáááˇáş 20 ááąáŹááşáážááá˛áˇ ááąááŹáážáŹ ááśááŤááşááťáąáŹááşáá˝áŹá¸áááşá
Parallels áááŻáᏠááŹáᲠá ááŤáááŻáˇ ááŹááŻááşááąáᲠáááŻááŹááᯠááŽáážáŹ áĄáŹá¸ááŻáśá¸ ááááźáá˛áˇáĄáá˝ááş á ááŤáááŻáˇ áááşááąáŹááş áááŻááşáᲠá ááŤáááŻáˇ ááŹááŻááşááąáᲠáááŻááŹááᯠá፠áááźáąáŹááąáŹáˇáá°á¸á ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááášááŹáá
áşáážááşá¸áážá ááŻáśá¸ááąáŤááşá¸ áá ááŻá áááşáááşá¸ ááá ááťáąáŹáşá ááąáŹáşá
áááŻá Tallinn áážááˇáş Malta áááŻáˇáá˝ááş áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáážáááźáąáŹááşá¸áᏠááźáąáŹááźááŤáááşá ááášááážáááťážááş ááąáŹááşá¸ááŹááŽáá˝ááş áĄáąá¸ááąááŤá ááąáŹáşááşááŹáááŻáˇ ááźáąáŹááşá¸áá˝ážáąáˇáááŻááşááźáŽá¸ ááťáąáŹááᯠáá˝áąá¸áá˝áąá¸áááş áááŻáĄááşááŤáááşá
áĄáá°á¸áááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááŹááááş Python 2 áá˝ááş ááąá¸ááŹá¸ááŹá¸áááşá ááťá˝ááşáŻááşáááŻáˇáááş á áŽá¸áá˝áŹá¸ááąá¸ááŻááşáááŻááşááąááźáŽá¸ ááąááşáááşááąáŹáááşá¸áááŹááťáŹá¸ááᯠááááşáááşáááş áĄááťáááşááážáááąáŹááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááŻáášáááąáŹááşááąááŤáááşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş Django áážááááşá áĄááŹáĄáŹá¸ááŻáśá¸áážáááąáŹááźáąáŹááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş áááŻááťážáśááąáŹáá ášá ááşá¸ááťáŹá¸áááŻáá°á áá˝ážááˇáşáá áşáááŻááşáááşá MySQLá Redis áážááˇáş NGINX áááŻáˇáááşá¸ááźá áşáááşá ááŤáááŻáˇáážáŹ áááźáŹá¸áĄáááŻááşá áŹá¸áĄááŹáá˝áą áĄááťáŹá¸ááźáŽá¸áážááááşá ááŤáááŻáˇáážáŹ MongoDB áážááááşá ááŤáááŻáˇáážáŹ áááşáááşááąáá˛áˇ ááŻááşáá˝áąáážááááşá ááŤáááŻáˇáážáŹ ááŹáážááážááá°á¸á ááŤááąáááˇáş ááŤáˇáážáŹáááŻááşáá°á¸á ááŤáááŻááşáá°á¸á
OpenResty
áááŻááˇáşáĄááźáąáŹááşá¸áááŻááşááźáąáŹááźáááşá ááŽááąáˇááźáąáŹáááˇáşáĄááźáąáŹááşá¸áĄááŹááᯠááźááˇáşáááŻááşááĄáąáŹááşá
- OpenResty áááŻáᏠááŹáá˛á áĄá˛ááŤááᯠááŹáá˛áˇá áŹá¸ááŹáá˛á
- ááťá˝ááşáŻááşáááŻáˇáá˝ááş Pythoná NodeJSá PHPá Go áážááˇáş áá°áááŻááşá¸áážá áşáááşáááˇáş áĄááźáŹá¸áĄáááŻááşá áŹá¸áĄááŹááťáŹá¸ áážáááąáŹáĄá፠ááŽá¸ááᯠáĄáááşááźáąáŹááˇáş ááźááşáááşááŽáá˝ááşááááşá¸á
- áážááˇáş áááşáá˝áąáˇáá áĽáááŹáĄááťááŻáˇá áĄá áŽáááşááśá áŹááᯠá.á ááŹááŽááźáŹáĄáąáŹááş ááźááşááąáŹááşááŹá¸áááŹááźáąáŹááˇáş áĽáááŹáĄáááşá¸áááşáážáááŤáááşá
OpenResty áááş NGINX ááźá áşáááşá áá°áˇáĄáŹá¸ ááťáąá¸áá°á¸áááşá á˝áŹááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááąáŹááşá¸áá˝ááşááźááˇáşá áŻáśááąáŹ áááşááŹááŹáá áşáᯠáážááááşá ááąáŹááşá¸áá˝ááşá á˝áŹ ááąá¸ááŹá¸ááŹá¸ááźáŽá¸á áááşá¸áááş ááźááşáááşá á˝áŹ áĄááŻááşááŻááşááŤáááşá ááŻááşááŻááşáážáŻáážáŹ áĄááťáŹá¸á áŻáᏠNGINX ááᯠáĄááŻáśá¸ááźáŻáááşáááŻáˇ áááşááŤáááşá áá°á áááşáá˝ááşáá˝ááşáá˛áˇ áĄáąá¸áĄáąá¸ááąá¸ááąá¸áááŻáᏠáĄáŹá¸ááŻáśá¸ááááŤáááşá áááşá¸áááŻáˇáááş áááşá¸áá˝ááş áĄáąá¸ááźááąáŹ synchronous I/O ááᯠááźáŻááŻááşááŹá¸ááąáŹááźáąáŹááˇáş Python áá˝ááş á ááşááŽá¸á áŽá¸ááŹá¸áááˇáşáĄáááŻááşá¸ áááşáááˇáşáĄááŹáááŻááťáž á ááşááŽá¸á áŽá¸áááş ááááŻáĄááşááŤá Gevent á áĄáąá¸áááşá ááąáŹááşá¸áááşá ááŤááąáááˇáş áááşá¸ C-code ááąá¸ááźáŽá¸ gevent áážáŹ áá áşááŻááŻáážáŹá¸ááąáááşá áĄáážáŹá¸áážáŹááźááşáᏠáá°á¸áá˝áŹá¸ááááˇáşáááşá ááťá˝ááşááąáŹáˇáşáážáŹ áĄáá˝áąáˇáĄááźáŻáśáážááá˛áˇáááş- áĄá˛ááŽáážáŹ ááŹáážáŹá¸áá˝áŹá¸áá˛áááŻáᏠáĄááźáąáážáŹáááŻáˇ áážá áşáááşááŻáśá¸ááŻáśá¸ áĄááťáááşáá°áá˛áˇáááŤáááşá áĄáááşá áá áşá áŻáśáá áşááąáŹááşáááş áá˝ááşáá˛áˇáááˇáş áááşááášááááşáĄáááşá¸áááşá ááá°á¸áá˛áˇáᲠááźáżááŹááᯠáá˝áąáˇáážáááźáŽá¸ áĄááşááŹáááşááąáŤáşáá˝ááş ááąá¸áá˛áˇáᏠGoogle á áááşá¸ááᯠááá˝áąáˇáá˛áˇááŤá ááťá˝ááşáŻááşáááŻáˇ ááŻáśá¸ááá°á¸áá˝ááşáá˝áŹá¸áááşááźá áşáááşá
NGINX áááş caching áážááˇáş static content ááťáŹá¸ááᯠááŻááşááąáŹááşááźáŽá¸ááźá áşáááşá áá áşááąááŹááŹáážáŹ áážáąáŹááˇáşáážáąá¸áááąá áąáááŻáˇá áá áşááąááŹááŹáážáŹ ááąáŹáşááźááťááşáá˝áąááᯠáááŻáśá¸áážáŻáśá¸á áąáááŻáˇáĄáá˝ááş áá°ááŹá¸áááşá á˝áŹááźáŻááŻááşáááşá¸ááᯠáááşá ááŻá¸ááááşá ááŹááááŻááŤáá°á¸á Nginx áááşáĄááŻáśá¸ááźáŻáááşáĄáá˝ááşáĄáááşááźáąáááşá áááşááŹáá°ááááşáááŻá ááşá¸á áŹá¸áááşááááŻáĄááşá፠- WSGIá PHP-FPMá Gunicorná Unicorná Nginx ááᯠá áŽááśáááˇáşáá˝á˛áá°ááťáŹá¸ááś ááąá¸áĄááşáá˛áˇááźáŽá¸ áááşá¸áááŻáˇáážááˇáş áááşáááŻáˇááŻááşááąáŹááşááááşááᯠáááážáááŹá¸áááşá Nginx áááş ááąáŹááşá¸áááŻááťááşááťáŹá¸ááᯠá áá áşáááť ááŻááşááąáŹááşáááşá ááŽáĄááźáąáŹááşá¸ áááşá¸áááşá¸ááźáŹááž ááźáąáŹáááşá áĄáááŻááťáŻááşáĄáŹá¸ááźááˇáşá áá°ááąáŹááşá¸áááŻáážáŻáááŻáááşááśáááŻááşáááˇáşáĄááťáááşá ááŻááşááąáŹááşááťáááşáážááˇáş áĄááŻáśá¸ááźáŻáá°áĄáŹá¸ áĄááźáąáŹááşá¸áĄááŹááᯠááąá¸ááąáŹáĄááŤáá˝ááş áĄáááˇáşáá áşááŻáážááááşá
Nginx áááş áááŻááşáááşá áááŻáˇááąáŹáş ááźáżááŹáá áşáᯠáážááááş- áááşá¸áááş á áááşááźááŻááşááźááşáááşáááŻááşááąáŹáşáááşá¸ ááąáŹááşáťáŹá¸ááťáŹá¸áááş config áá˛áááŻáˇ áá˝ááşá¸áááŻáˇáááŻááşááąáŹ áĄáąá¸ááźááąáŹáĄááşášááŤáááşááťáŹá¸áĄáŹá¸ááŻáśá¸áážááˇáşáááş áááŻááşááťáąáŹááŽáá˝áąáááźá áşáááŻááşááŤá ááŽá á˝ááşá¸áĄáŹá¸á áááŻáśááąáŹááşáá°á¸á áááŻáˇááźáąáŹááˇáş áá áşááťáááşá Taobao ááž ááąáŹááşáťáŹá¸ááťáŹá¸áááş áá˝ááşáá˛áˇááąáŹ áážá áşáážá áşáááˇáşá Lua ááᯠáááşá¸áá˝ááş áááşááąáŹááşáá˛áˇáááşáᯠááťá˝ááşááąáŹáşáááşááŤáááşá áá°ááŹááąá¸ááŹáá˛á
- áĄáá˝ááş. ááąá¸áááşáááşá LuaJIT áááş memory overhead á 100-200 ááŽáááŻáááŻááşáááşá¸ááťááşáážááˇáş á á˝ááşá¸ááąáŹááşáááşáĄáááşá¸ááŻáśá¸ ááąá¸ááŤáááşá
- áĄáážáááş. LuaJIT á ááŹá¸ááźááşáááş áĄááźáąáĄááąááťáŹá¸á á˝áŹáá˝ááş C áážááˇáş ááŽá¸áááşááąááźáŽá¸ áĄááťááŻáˇáĄááźáąáĄááąááťáŹá¸áá˝ááş Java ááᯠáážáŻáśá¸áááşá áĄááťááŻáˇáá˝ááş áááşá¸ááᯠááťáąáŹáşáá˝áŹá¸áááŻááşáááşá áĄááťáááşáĄááąáŹáşááźáŹáĄáąáŹááşá áĄáááŻááşááŻáśá¸ JIT compiler áááş áĄááŻáááŹá áĄáááˇáşáĄáááşá¸áᯠáá°ááá˛áˇáááşá áĄáᯠáááŻáĄáąá¸ááŹáá˝áąáážáááąáááˇáş áĽááᏠV8 áááŻáᲠáĄáááşá¸ááąá¸áááşá áĄááťááŻáˇááąáŹ JS á ááŹá¸ááźááşááťáŹá¸áážááˇáş Java HotSpot áááş áĄááťááŻáˇááąááŹááťáŹá¸áá˝ááş áááŻááźááşááąáŹáşáááşá¸ áĄááťááŻáˇááąááŹááťáŹá¸áá˝ááş ááŻáśá¸áážáŻáśá¸ááąáá˛ááźá áşáááşá
- áááşáá°áááşáá˝ááşáá°áááşá. áááˇáşáá˝ááş Perl codebase áá áşááŻáážáááźáŽá¸ áááş Booking áááŻááşááŤá Perl ááááŻááááşááŹááťáŹá¸ááᯠáááşáá˝áąáˇááááˇáşáááşáááŻááşááŤá áá°áááŻáˇááážáááąáŹááźáąáŹááˇáşá áá°áááŻáˇáĄáŹá¸ááŻáśá¸ááᯠááááşá¸áá˝áŹá¸áá˛áˇááźáŽá¸ áááşááźáŹá¸áááşáážáŹ áážááşááťáŹá¸áááşáá˛áááşá áĄááźáŹá¸áĄááŹáá áşááŻááŻáĄáá˝ááş ááááŻááááşááŹááťáŹá¸ááᯠáááŻááťááşááŤáá áááşá¸áááŻáˇááᯠááźááşáááşááąáˇááťááˇáşáááş áááŻáˇáááŻááş áážáŹáá˝áąáááş áááŻáĄááşááŤáááşá Lua ááá ášá áá˝ááşá áĄááŹáĄáŹá¸ááŻáśá¸áááşáááŻá¸áážááşá¸áááşá Lua ááᯠááŻáśá¸áááşáĄáá˝ááşá¸ áááşáááˇáş áĄáááşáááşá¸áááᯠáááşáá°áááŻááşááŤáááşá áĄá˛ááŤááᯠáĄááźáąááŻááşáááŻáˇ áážá áşááŹááŽááąáŹááş áĄááťáááşáá°ááááşá ááąáŹááşáážá áşááŹááŽááźáŹááąáŹáˇ ááŻááşááŻááşáážáŻáážáŹ ááŻááşááąá¸ááąááźáŽá áá áşáááşáááˇáşáĄááźáŹáá˝ááş áá°áááş ááŻááşááŻááşááąá¸áááŻáˇ áááŻááşáááŻááşáá˝áŹá¸áᏠáá˝ááşáá˝áŹáá˝áŹá¸áá˛áˇáááşá
ááááşáĄááąááźááˇáşá áááşá¸áááşá¤ááŻáśááááş-

ááŽáážáŹ áĄááťáŹá¸ááźáŽá¸áážááááşá OpenResty áááş lush áážááˇáş engins áážá
áşááŻááŻáśá¸áá˝ááş module ááťáŹá¸á
á˝áŹááᯠá
áŻá
ááşá¸ááŹá¸áááşá ááźáŽá¸ááąáŹáˇ áááşá¸áážáŹ áĄááŻááşáĄáááşáááˇáşáážááááş - áááşááźááˇáşááźáŽá¸ áĄááŻááşááŻááşáááşá
áĽáááŹ
á áŹááŹá¸áá˝áą ááŻáśááąáŹááşááŤááźáŽá ááŻááşááᯠáááşáá˝áŹá¸ááźááĄáąáŹááşá ááŤáááąáŹáˇ Hello World ááąá¸ááŤá

áĄá˛ááŤááŹáá˛? ááŤá áĄááşááťááşáááşááąááŹááŤá ááťá˝ááşáŻááşáááŻáˇ á
áááşááá°ááŤáážááˇáşá ááťá˝ááşáŻááşáááŻáˇááááŻááşáááŻááşáááşá¸ááźáąáŹááşá¸ááᯠáááąá¸ááŤá áĄáááşáááˇáşááŻááşááŹá¸áááˇáşáá
áşááŻááᯠááá°á፠- ááťá˝ááşáŻááşáááŻáˇáá˝ááş áááşá¸ááᯠNGINX áá˝ááşáážáááźáŽá¸á ááťá˝ááşáŻááşáááŻáˇáááş ááąáŹááşá¸áá˝ááşááźáŽá¸ ááťááşá¸ááá
á˝áŹ ááąáááŻááşááŤáááşá
content_by_lua_block Lua ááŹááşáá˝ážááşá¸ááᯠáĄááŻáśá¸ááźáŻá ááťá˝ááşáŻááşáááŻáˇáááş áĄááźáąáŹááşá¸áĄááŹááᯠáááşááąáŹááşáážáŻááąá¸ááąáááşáᯠáááŻááŹá¸áááˇáş áááąáŹááşáá
áşááŻááźá
áşáááşá ááťá˝ááşáŻááşáááŻáˇáááş áĄááşááťááşááźáąáŹááşá¸áá˛áážáŻááᯠáá°ááŤáááşá remote_addr áĄáá˛áááŻáˇ ááťáąáŹáşáá˝áŹá¸áá string.format. ááŤá áĄáá°áá°ááŤáá˛á sprintfLua áááŹá áážááşáááşááŹá ááźáŽá¸ááąáŹáˇ ááťá˝ááşááąáŹáşáááŻáˇá client áááŻááąá¸áááşá
ááááşáĄááąááźááˇáşá áááşá¸áááşá¤áá˛áˇáááŻáˇááźá áşááááˇáşáááş-

ááŤááąáááˇáş ááááˇáşááášááŹááᯠááźááşááąáŹááşáá˝áŹá¸áááşá ááŻááşááŻááşááąá¸áá˝ááş Hello World ááᯠáááşáá°ááťáž áĄááŻáśá¸áááźáŻááŤá ááťá˝ááşáŻááşáááŻáˇááĄááşááşááŽááąá¸áážááşá¸áááş áĄááťáŹá¸áĄáŹá¸ááźááˇáş ááąááŹááąáˇá
áş áááŻáˇáááŻááş áĄááźáŹá¸áá
áşááąááŹáááŻáˇ áá˝áŹá¸ááąáˇáážáááźáŽá¸ ááŻáśáˇááźááşáážáŻáá
áşááŻáĄáá˝ááş áĄááťáááşáĄááťáŹá¸á
áŻááᯠá
áąáŹááˇáşááťážáąáŹáşááąááŤáááşá

áááŻááşá
áąáŹááˇáşááąááŻáśááŤáá˛á ááááşáááąáŹááşá¸áá°á¸á áĄááŻáśá¸ááźáŻáá° 100.000 ááąáŹááşááŹááąáŹáĄááŤá ááťá˝ááşáŻááşáááŻáˇáĄáá˝ááş áĄáá˝ááşáááşáá˛ááŤáááşá áááŻáˇááźáąáŹááˇáşá áĽáááŹáá
áşááŻáĄááąááźááˇáşáááŻá¸áážááşá¸ááąáŹ application áááŻááŻáśá¸ááźááŤá
ááŻáˇá áĽáááŹá ááźáąáŹááşááŻááşááŻáśáá˝áąááᯠáážáŹááźááˇáşáááşá ááťá˝ááşáŻááşáááŻáˇááŹááťážááş áážáŹáá˝áąááŻáśááŹááá ááťá˝ááşáŻááşáááŻáˇáááş ááąáŹáˇááťááşá
áŹááŻáśá¸ááťáŹá¸ááᯠááťá˛áˇáá˝ááşáááşááźá
áşááźáŽá¸á áĄááŻáśá¸ááźáŻáá°áááş "ááźáąáŹááşááťáŹá¸" ááᯠáážáŹáá˝áąááŤá ááźáąáŹááşááťáŹá¸á ááťáąáŹáˇááťáąáŹááşá¸áážáŻááťáŹá¸ áĄá
áážááááşáááŻáˇááᯠáá˝áąáˇáážááááşááźá
áşáááşá ááááŚá¸á
á˝áŹ backend áá˝ááşááąáŹááşá¸áááŻáážáŻááąááŹáááŻááá°áááşáááŻáĄááşáááşá á¤ááŻáśáááş-

ááťááşá¸áážá
áşááźáąáŹááşá¸áááş áááˇáşáĄáŹá¸ GET parameters ááťáŹá¸ááᯠááąáŹááşáá°áááŻááşáááşá áážáŻááşáá˝áąá¸áážáŻááťáŹá¸ááážáááŤá áááŻáˇááąáŹááş áĽáááŹáĄáŹá¸ááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş ááŻáśáážááş SQL query ááᯠáĄááŻáśá¸ááźáŻá keyword áážááˇáş extension ááźááˇáş table áá
áşááŻááŤáážáááąáŹ database áá
áşááŻááž á¤áĄááťááşáĄáááşááᯠááá°ááŤáááşá áĄááŹáĄáŹá¸ááŻáśá¸áááŻá¸áážááşá¸ááŤáááşá á¤ááŻáśáááş-

á
áŹááźááˇáşáááŻááşááᯠááťá˝ááşááąáŹáşáááŻáˇ ááťáááşáááşááąá¸áááşá resty.mysqláĄá
áŻáśááŤááźáŽá¸ááŹá¸ááŤá ááťá˝ááşáŻááşáááŻáˇáááş áááşáááˇáşáĄááŹáááŻááťáž áááˇáşáá˝ááşá¸áááş ááááŻáĄááşááŤá áĄáŹá¸ááŻáśá¸áĄáááşáááˇáşááźá
áşááŤááźáŽá SQL query áá
áşááŻááᯠááťáááşáááşáááşá¸áážááˇáş ááźáŻááŻááşáááşá¸ááᯠáááşáážááşááŤ-

áááşá¸áááşá¸ááźáąáŹááşá
ááŹááąáŹááşá¸ááąáááˇáş áĄááŻááşááŻááşáááşá á¤áá˝ááş 10 áááˇáşáááşááťááşááźá
áşáááşá áážááşáááşá¸ 10 ááŻááᯠáá˝á˛ááŻááşááźáŽá¸ ááťááşá¸áááşá ááąáŹááşáááş áááźááťááşááąáŹáˇáá°á¸á SQL áážáŹ áááˇáşáááşááťááşááᯠááąáˇáá˝áŹá¸áááşá
áááŻáˇááąáŹááş ááąá¸áá˝ááşá¸áĄáŹá¸ááŻáśá¸áĄáá˝ááş ááŻáśááťáŹá¸ááᯠááťá˝ááşáŻááşáááŻáˇ áážáŹáá˝áąáˇáááşá ááťá˝ááşáŻááşáááŻáˇáááş ááąáŹááşá¸áááŻááťááşááťáŹá¸á
á˝áŹááᯠá
áŻááąáŹááşá¸ááźáŽá¸ Lua ááŻááąáŤáşááąáŹ áááŹá¸áá
áşááŻáá˝ááş ááźááˇáşá
á˝ááşááŤá reqs, ááŻááşááŤá ngx.location.capture_multi.

á¤ááąáŹááşá¸áááŻáážáŻáĄáŹá¸ááŻáśá¸áááş ááááşáááşá¸ááźá
áşááąááźáŽá¸ áĄááźáąááťáŹá¸ááᯠááťá˝ááşáŻááşáááŻáˇááś ááźááşááąá¸ááŤáááşá áááşáááşááťáááşáááş áĄáážáąá¸ááŻáśá¸áá
áşááŻá ááŻáśáˇááźááşáážáŻáĄááťáááşáážááˇáş ááŽááťážáááşá áĄáááşá ááťá˝ááşáŻááşáááŻáˇáĄáŹá¸ááŻáśá¸áááş 50 ááŽááŽá
áášáááˇáşáĄáá˝ááşá¸ ááźááşáááşáááŻááşáá°á¸ááźáŽá¸ ááąáŹááşá¸áááŻááťááşáá
áşááŹááᯠááąá¸áááŻáˇááŤáá 50 ááŽááŽá
áášáááˇáşáĄáá˝ááşá¸ ááŻáśáˇááźááşáážáŻááážáááŤáááşá
ááťá˝ááşáŻááşáááŻáˇáááş ááťááşá¸ááááźáŽá¸ HTTP áááŻááşáá˝ááşááźááşá¸áážááˇáş áááşáážáşááťááźááşá¸áááŻáˇááᯠáááąá¸ááťááşááąáŹááźáąáŹááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş NGINX ááᯠááťá˝ááşáŻááşáááŻáˇáĄáá˝ááş áĄááŹááŹáááŻááşá¸ááᯠááŻááşááąáŹááşá
áąáááşááźá
áşáááşá áááşá¸ááźááşáá˛áˇáĄáááŻááşá¸ ááąáŹááşá¸á
ááŹáážááááşá url/fetchá áá°á ááŽáážáŹ

ááťá˝ááşáŻááşáááŻáˇáááş áááŻá¸áážááşá¸ááŤáááşá proxy_passáááşáážáşááŻááşááááˇáşááąááŹá áááşá¸ááᯠáááşáááŻáˇááźáŻááŻááşááááşááᯠáááşáážááşááŤá ááťá˝ááşáŻááşáááŻáˇáĄáá˝ááş áĄááŹáĄáŹá¸ááŻáśá¸ áĄáááşááźáąááŤáááşá
ááŤááąáááˇáş ááŤá áááŻáśááąáŹááşááąá¸ááŤáá°á¸á ááťá˝ááşáŻááşáááŻáˇáᏠááŻáśá¸á á˝á˛áá°ááᯠááąááŹááᯠááąá¸áááŻáˇáááŻáĄááşááŤááąá¸áááşá áĄáááŻá¸áážááşá¸ááŻáśá¸á áááşáá°á¸áážáŹ áĄááŹáĄáŹá¸ááŻáśá¸ááᯠJSON áááŻáˇ áá˝ááşáá°á á˝áŹá á áŹááźáąáŹááşá¸áážá áşááźáąáŹááşá¸ááźááˇáş á áŽá áĽáşáááşááźá áşáááşá ááťá˝ááşáŻááşáááŻáˇáááş Content-Type ááąá¸áááşá JSON ááąá¸áááşá
ááŤááąáááˇáş áĄáááşáĄáá˛áá áşááŻáážáááŤáááş- áĄááŻáśá¸ááźáŻáá°á JSON ááᯠááááşááťááşááŤáá°á¸á áážáąáˇááŻáśá¸ developer ááťáŹá¸ááᯠáá˝á˛ááąáŹááşáááş áááŻáĄááşááŤáááşá áá áşááŤáááąáážáŹ áĄá áááŻááşá¸áážáŹ ááŻááşááááŻááťááŻá¸ áááśá áŹá¸áááŤáá°á¸á ááŻááşáá˛áˇá SEO ááťá˝ááşá¸ááťááşáá°áá˝áąá ááŻáśáá˝áąááᯠáážáŹááąáááşáááŻáááş áá°áááŻáˇá áááŻáá ááŻááşáá°á¸áááŻáˇ ááźáąáŹááŤááááˇáşáááşá áááşá¸áááŻáˇááᯠáĄááźáąáŹááşá¸áĄááŹáĄááťááŻáˇ ááąá¸áááşáááŻááŤáá ááťá˝ááşáŻááşáááŻáˇá áážáŹáá˝áąááąá¸áĄááşááťááşááťáŹá¸áááş áááşáááˇáşáĄááŹáááŻááťáž áĄáá˝ážááşá¸ááážááᯠáááŻááááˇáşáááşá
áĄá˛ááŤáá˛áˇ ááŹááŻááşáááá˛á ááŻááşááŤáááş user ááᯠHTML ááąá¸áááşá áááşáááŻááşááťáŹá¸ááźááˇáş ááŻááşááŻááşááźááşá¸áááş áĄáážáŹá¸áĄáá˝ááşá¸ááážáá áááŻáˇááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇáááş áááşá¸áááááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááŻááŤáááşá ááŽáĄáá˝ááş á
áŹááźááˇáşáááŻááşáážááááşá lua-resty-template.

ááźáąáŹááşá
ááŹááąáŹááşá¸áá˛áˇ OPM á
áŹááŻáśá¸ááŻáśá¸ááŻáśá¸ááᯠáááşááźááşáá°á¸ááŤááááˇáşáááşá OpenResty áááş áááşá¸ááááŻááşáááŻááş áááşááąáˇááťáşáááşááąááťáŹááŤáážáááźáŽá¸á áĄáá°á¸áááźááˇáş áááşáááş ááá°ááŽááąáŹ module áĄááťáŹá¸áĄááźáŹá¸ááᯠáááˇáşáá˝ááşá¸áááŻááşáááşá lua-resty-template. áááşá¸áááş Django áááşá¸áááááşááťáŹá¸áážááˇáş áááşáá°ááąáŹ áááŻá¸áááŻá¸áááşá¸áááááşáĄááşááťááşááźá
áşáááşá áĄá˛ááŽáážáŹ ááŻááşááąá¸ááźáŽá¸ variable áĄá
áŹá¸áááŻá¸ááŻááşáááŻááşááŤáááşá
ááááşáĄááąááźááˇáşá áĄááŹáĄáŹá¸ááŻáśá¸áááş á¤áá˛áˇáááŻáˇááźá áşááąááááˇáşáááş-

ááťá˝ááşáŻááşáááŻáˇáááş ááąááŹáááŻáá°ááźáŽá¸ ááá°ááŹááŻáśá
áśááᯠá
áŹááźáąáŹááşá¸áážá
áşááźáąáŹááşá¸ááźááˇáş ááźááşáááŻáááşá ááŻáśá¸á
á˝á˛áá°á ááźáąáŹááşáá˝áŹá¸áááŻáˇ ááťáąáŹáşááąáááşá ááťá˝ááşáŻááşáááŻáˇ ááąáŹááşá¸áááŻááťááşááᯠááťá˛áˇáá˝ááşááźáŽá¸ááááşá¸á ááźáąáŹááşáááąá¸ááťáŹá¸áĄáá˝ááş ááŹá¸áá˝áąá¸ááśááááşáááŻáááşá¸ ááážááá˛áˇáááşá áááşá¸áááşááąáŹáˇáážáááááŤáá°á¸á áá°áážáŹááąááŹááźá
áşáááŻááşáááşá ááŤááąáááˇáş áá°áˇááąáŹááşá¸áááŻááťááşááᯠáážááşáááşá
á˝áŹ áááŻáśááąáŹáşáááŻááşáá˛áˇáá°á¸á
áĄááŹáĄáŹá¸ááŻáśá¸á áĄáąá¸ááąá¸ááŤáá˛á ááŤááąáááˇáş ááťá˝ááşááąáŹáşáááŻáˇ áá˝áśáˇááźááŻá¸áááŻá¸áááşááąááźáŽá¸ ááŻáśá¸á á˝á˛áá°áá˝áąááᯠáááźááťááşááąá¸ááŤáá°á¸á áá˝ááˇáşááźáŻááťááşáá áşááŻááŻááşááĄáąáŹááşá ááŤáááŻááŻááşáááŻáˇá NGINX á OpenResty áá˛áˇáááşáážááşááťááşáá˝áąáá˛áˇ ááąáŹááşá¸áááŻááťááşááᯠáááşáááŻáááŻááşáá˝ááşááá˛áááŻáᏠááźááˇáşááźááĄáąáŹááşá
- ááááĄáááˇáş - áááşááąáŹááşáá˝ááˇáşááŻáśá¸á á˝á˛áá°á áĄááŻáážááŹáá˛áˇáĄááŤá ááąáŤááşá¸á áŽá¸áá˝áąá IP ááááşá áŹáĄáááŻááşá áááźáŹá¸ááąááŹáá˝áąá áá°áˇáááŻááźááˇáşáááşá áááźááŻááşáááş ááťááşááťááşá¸ááźááşáááŻáˇáááŤáááşá áá˝ááˇáşááźáŻááťááşáĄáá˝ááş áááşá¸áááŻááŻáśá¸áááŻááşáááşá áááŻáˇáááŻááş ááąáŹááşá¸áááŻáážáŻááťáŹá¸á á˝áŹááᯠáááşááśááážáááŤáá áááşá¸áááŻáˇááᯠá¤áĄáááˇáşáá˝ááş áĄáá˝ááşááá°ááźááşáááŻááşáááşá
- ááźááşáááşááąá¸ááŹá¸. ááąáŹááşá¸áááŻááťááşááąááŹáĄááťááŻáˇááᯠááźááşáááşááąá¸ááŹá¸ááźááşá¸á
- áĄááźáąáŹááşá¸áĄááŹ. ááťá˝ááşáŻááşáááŻáˇáááş ááŻáśá¸á á˝á˛áá°áĄáŹá¸ áĄááźáąáŹááşá¸áĄááŹááᯠááąá¸ááŤáááşá
- header filter. ááŻáśáˇááźááşáážáŻ ááąáŤááşá¸á
áŽá¸ááťáŹá¸ááᯠááźáąáŹááşá¸ááŤá ááŤáááŻáˇááŻáśá¸áááşá
proxy_passáĄááŻáśá¸ááźáŻáá°ááś áááąá¸áĄááşáᎠááąáŤááşá¸á áŽá¸áĄááťááŻáˇááᯠááťá˝ááşáŻááşáááŻáˇ ááźááşáááşááąá¸ááŹá¸áááŻááşááŤáááşá - body filter. ááťá˝ááşáŻááşáááŻáˇáááş ááášááŹáááŻááşááᯠááźáąáŹááşá¸áá˛áááŻááşáááşá
- ááŻáśá¸ - áá áşááŻááşááźááşá¸á ááąáŹááşáááşáĄáá˝ážáŹáááŤáᲠelasticsearch áá˝ááşáážááşáááşá¸ááťáŹá¸ááąá¸áááŻááşáááşá
ááťá˝ááşáŻááşáááŻáˇá áá˝ááˇáşááźáŻááťááşáááş á¤áá˛áˇáááŻáˇ ááźá áşáááş-

áĄá˛ááŤááᯠááŤáááŻáˇáááˇáşáááşá locationáážáąáˇáá˝ááşááąáŹáşááźááŹá¸ááąáŹá áážááˇáşáĄáąáŹááşááŤááŻááşáááŻáááŻááąááŹáá˝ááşáááˇáşááŤá

ááťá˝ááşáŻááşáááŻáˇáá˝ááş áá˝ááşááŽá¸ áááŻáááşáážáááážáááᯠááźááˇáşáááşá áááŻááşáááş ááťááąáŹáşáááŻáˇá áá˝ááˇáşááźáŻááťááşááąá¸áááşá áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áááş áááášááŹááźáŽá¸ áá˝ááşááŽá¸ áááŻáááşááᯠáááşáážááşáááş áááŻáĄááşááźáąáŹááşá¸ áááˇáşáážááşá¸áááŻááşáááşá áááŻáˇááźáąáŹááˇáş Redis áá˝ááşáááşá¸ áááˇáşááŹá¸ááŤáááşá

Redis áážááˇáşáĄááŻááşááŻááşáááşáĄáá˝ááşááŻááşáááş áĄáá˝ááşáááŻá¸áážááşá¸ááźáŽá¸ áĄááźáŹá¸ááŹááŹá
ááŹá¸ááťáŹá¸áážááˇáşááá°ááŤá áá
áşááťáááşáááşá¸áážáŹáááşá áĄáááş/áĄáá˝ááşáĄáŹá¸ááŻáśá¸á áááŻáážáŹ ááŹáážááá˛á ááŽáážáŹ ááŹáážááá˛á áĄá˛ááŤá ááááşáááŻáˇááąááŹáááŻááşáá°á¸á synchronous code ááąá¸ááŤáá áááşá¸áááş asynchronously áĄááŻááşááŻááşááŤáááşá ááŻáááŻááşááąáŹááşá¸áážáŻááźááˇáşáᏠááąáŹááşá¸á
á˝áŹááźáŻáá

áá˝ááˇáşááźáŻááťááşááᯠáááŻááşáááŻááşááŻááşááźááŤá
ááŻáˇá

ááąáŹááşá¸áááŻááťááşáááŻááşáááşááᯠáááşáááŻáˇáááŻáááşáááŻáˇ ááźáąáŹáááşá ááťá˝ááşáŻááşáááŻáˇáááş POST áĄááźáąáŹááşá¸ááźááťááşááťáŹá¸ááᯠáááşááśááážááááşá áĄááąáŹááˇáşáááşááźááşá¸áážááˇáş á
ááŹá¸áážááşáážááşáááşááźáąáŹááşá¸ á
á
áşááąá¸ááŤá ááážááşáááş áá˝ááˇáşááźáŻááťááşáááşáááşá áááşá¸áááŻáˇáážááşááťážááş ááťá˝ááşáŻááşáááŻáˇáááş áááŻáááşááᯠRedis áááŻáˇ ááąá¸áááŻááşááŤáááşá

cookie ááᯠáááşáážááşáááş áááąáˇááŤáážááˇáşá áááşá¸ááᯠá
áŹááźáąáŹááşá¸áážá
áşááźáąáŹááşá¸ááźááˇáşáááşá¸ ááŻááşááąáŹááşáááş-

áĽáááŹá áááŻá¸áážááşá¸áááşá áážááşá¸ááááşá ááŻááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááş ááźáąáŹááşááťáŹá¸ááᯠáá°áááŻáˇáĄáŹá¸ááźááááˇáş áááşááąáŹááşáážáŻááᯠááźáŻááŻááşáááşáááŻááşááŤá ááŤááąáááˇáş ááŤáááŻáˇááᯠáááşáá°áááá˛á ááŽááąáŹáˇ ááŻááşááŻááşáážáŻáážáŹ ááŹáá˝áąááŻááşááąáŹááşáááŻááşáá˛áááŻááŹááᯠááąáˇááŹááźááˇáşááĄáąáŹááşá
- áááŻá¸áážááşá¸ááąáŹ ááąáŹááşááśáááŻááş. áá áşááŤáá áşááśáá˝ááş ááťá˝ááşáŻááşáááŻáˇáááş backend áááŻáˇ ááąááŹáĄáááşá¸áááşááᯠááąá¸áááşáááŻáĄááşáááş- áá áşááąááŹááŹáá˝ááş ááťá˝ááşáŻááşáááŻáˇáááş áááşá á˝á˛ááᯠáĄá áŹá¸áááŻá¸áááş áááŻáĄááşáááşá áĄááťááŻáˇááąááŹááťáŹá¸áá˝ááş á áŹáááşá¸áá áşááťááŻá¸ááᯠááźááááş áááŻáĄááşáááşá ááᯠsite ááąáŤáşáá˝ááş áĄááŻáśá¸ááźáŻáá°áááşááťážáážááááşááᯠááźáąáŹááŤá ááąáŹááşáᏠáááŻáˇáááŻááş á áŹáááşá¸áááŹá¸ááąáŤáşáá˝ááş áááşáĄá°áááŻááşááŤá áá áşááŻááŻááąáŹáˇ ááąá¸ááąá¸ááąá¸á áĄáááşá¸áááşááťážááŹááąáŹáĄáááŻááşá¸ááťáŹá¸ááᯠáĄáá˝ááşáá˝ááşáá°á á˝áŹ ááźáŻááŻááşáááŻááşáááşá ááŤá ááźááşáááşá áá˝ááşáááşá áĄáááşá¸ááąáŹááşá¸ááááˇáşáááşá
- ááąááŹááźááŻáááşááŻááşááąáŹááşááźááşá¸á. áá áşááŤáá áşááś ááťá˝ááşáŻááşáááŻáˇáááş ááťá˝ááşáŻááşáááŻáˇáá áŹááťááşáážáŹáá˝ááş ááźáąáŹáşááźáŹááťáŹá¸ááᯠááźážáŻááşáážáśáááŻááźáŽá¸ API ááąáŹááşá¸áááŻáážáŻááťáŹá¸ááźááˇáş á¤ááźáąáŹáşááźáŹááťáŹá¸ááᯠáá°ááŤáááşá ááŽáážáŹááŻááşááᏠáĄáááşá¸áá˝ááşáááşá áááşáááşáá˛áᲠááŻááşááąáŹááşááąááźáŽá¸ááźá áşáááˇáş ááťá˝ááşáŻááşáááŻáˇá backend ááᯠááááşááŤá á¤ááąááŹáá˝ááş ááąáŹááşáá°ááźáŽá¸ á áŻááąáŹááşá¸áááŻááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááş áĄááťááŻáˇááąáŹ JS ááᯠááŻáśáá˝ááşá¸áááŻááşáááş áááŻáˇáááŻááş áááˇáşááťááşáááşáĄááąáážááˇáş áááşá¸ááᯠáĄááŻáśá¸ááźáŻáá°áĄáŹá¸ áááąá¸áĄááşáᎠáá áşá áŻáśáá áşááŻááᯠáááşááźáŻááşááźáŽá¸ ááźááŻáááşááŻááşááąáŹááşáááŻááşáááşá
- áááŻááşááááŻáááşááąáŹááşáážáŻáĄáá˝ááş ááťááşáážáŹá
áŹ. ááŤá áĄáááşá¸ááąáŹááşá¸áá˛áˇ ááá
ášá
ááŤá ááťá˝ááşááąáŹáş áĄááąáŹááşáĄáááşááąáŹáşáááŻááşááŹá áĄá˛ááŽááááŻááşáááşá áááŻááşááśáá˝ááşá¸áááŹá¸áááşáĄáá˝á˛áˇáĄá
ááşá¸áá˝áąáá˛áˇ áááşáááşááąáŹááşááᯠááááşá¸áááŻáˇáá˛áˇ áĄáŽáááşááá˝ááşá¸áá
áşááááşá¸áááŻáˇáá˛áˇ Tenzor áážáŹ áĄááŻááşááŻááşáá˛áˇáááşá ááťá˝ááşáŻááşáááŻáˇáááş áááşááąáŹááşáážáŻáá
áşááŻááᯠááźáŻááŻááşááŹá¸ááźáŽá¸á áá°ááŽááąáŹ ááášáááŹá¸áá
áşááŻááᯠáĄááŻáśá¸ááźáŻá áĄááŹááťáŹá¸á
á˝áŹááᯠáááşá¸ááźáąáŹááşá¸ááźááźááşá¸á áá˝ááˇáşááźáŻááťááşáážááˇáş áĄááźáŹá¸áĄááŹááťáŹá¸ááᯠááŻááşááąáŹááşááŤáááşá
OpenResty áááş áĄááŹáááşááááşá¸ááᯠáá áşááŻáááşá¸áááşááąáŹááşáá˝ááˇáşáážááˇáş ááťááşáážáŹááźááşáá áşááŻáááşá¸ááᯠááśáˇáááŻá¸ááąá¸áááşáĄáá˝ááş áááşá áááŻááşááááŻáááşááąáŹááşáážáŻááťáŹá¸áĄáá˝ááş ááąáŹáşáĄááźá áş áĄááŻáśá¸ááźáŻáááŻááşáááşá áááˇáşáá˝ááş Node.js áážááááşáááŻááąáŹ ááŻáśá áśááźááˇáş microservices ááťáŹá¸ááᯠááąá¸ááŹá¸áááŻááşááąáŹááźáąáŹááˇáşá áááˇáşáá˝ááş PHP áážááááşá áááˇáşáá˝ááş á¤ááąááŹáá˝ááş Python áážááááşá á¤ááąááŹáá˝ááş Erlang áá áşááŻááŻáážááááşá áá°ááŽááąáŹááŻááşááᯠááąááŹáááŻááşá¸áá˝ááş áááşáááąá¸ááťááşááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇ ááŹá¸áááşááŤáááşá áááŻáˇááźáąáŹááˇáş OpenResty áááş áážáąáˇáá˝ááş ááááşáááŻá¸áááŻááşáááşá - á áŹáááşá¸áĄááşá¸áážááˇáş áá˝á˛ááźááşá¸á áááşááźáŹáážáŻ. áĄááťáŹá¸áĄáŹá¸ááźááˇáş NGINX áááş áááşááąáŤááşáá˝ááşáážáááźáŽá¸ ááąáŹááşá¸áááŻáážáŻáĄáŹá¸ááŻáśá¸áááş áááşá¸áááŻááźááşáááşá¸áá˝áŹá¸ááŤáááşá ááŽááąááŹá á áŻááąáŹááşá¸ááᏠáĄáááşá¸áĄáááşááźáąáááşá áá áşááŻááŻááᯠáááşááťááşááťááşá¸áá˝ááşááťááşááźáŽá¸ áá áşááąááŹááŹáááŻáˇ áá áşááťáááŻááşáááşá áĽáááŹá áá°ááŽááąáŹ Elasticsearchá Logstash áááŻáˇáááŻááş áááşá¸ááᯠáážááşáááşá¸áá˝ááşááąá¸ááźáŽá¸ áá áşááąááŹáááŻáˇ ááąá¸áááŻáˇáááŻááşáááşá
- Multi-User á áá áşááťáŹá¸. áĽáááŹ- áĄá˝ááşáááŻááşá¸ááááşá¸áá˝áąá áĄáááşá¸ááąáŹááşá¸áááşá áááąáˇ Cape Town áážá Alexander Gladysh áááş OpenResty ááᯠáĄááŻáśá¸ááźáŻá ááťáŹá¸á á˝áŹááąáŹáá áŹá¸áá°ááááşá¸áá áşááŻááᯠááťááşááźááşá á˝áŹ ááá°ááŹáá°áááşá¸ááᯠááźáąáŹááźááŤáááşá
- ááąáŹááşá¸áááŻááťááş á á áşááŻááşááźááşá¸ (WAF). áááŻáĄááŤáá˝ááş áááşáĄááşáááŽááąá¸áážááşá¸ Firewalls áĄááťááŻá¸ááťááŻá¸ááᯠááźáŻááŻááşáááş ááąááşáááşááąááźáŽááźá áşááźáŽá¸ áááşá¸áááŻáˇááᯠááśáˇáááŻá¸ááąá¸áááˇáş áááşááąáŹááşáážáŻááťáŹá¸á á˝áŹáážááááşá OpenResty ááĄáá°áĄááŽááźááˇáşá áááşáááş áááˇáşáááŻáĄááşááťááşááťáŹá¸áážááˇáşáĄáᎠááąáŹááşá¸áááŻáážáŻááťáŹá¸ááᯠáááŻá¸áážááşá¸áá˝ááşáá°á á˝áŹ á á áşááŻááşáááˇáş áááşáĄááşáááŽááąá¸áážááşá¸ firewall áá áşááŻááźá áşáĄáąáŹááş ááźáŻááŻááşáááŻááşáááşá áĄáááşá áááˇáşáá˝ááş Python áážáááŤáá PHP áááş áááˇáşáĄáŹá¸ áá˝ááşáááŻá¸ááşááž áááşáááˇáşááąááŹáá˝ááşááž ááąáŤááşáá˝áŹá¸ááźááşá¸ááážáááŤá áááşá¸ááᯠááąááťáŹááąáŤááş áááˇáşáá˝ááşá¸áááşáááŻááşááźáąáŹááşá¸ áááşááŹá¸áááşááŤáááşá áááˇáşáá˝ááş MySQL áážááˇáş Python áážááááşááᯠáááşááááŤáááşá ááźá áşáááŻááşáááşáážáŹá áááşá¸áááŻáˇáááş áááşá¸ááźáąáŹááşá¸áá°á¸ááźááşá¸áá áşááťááŻá¸ááťááŻá¸ááᯠááŻááşááąáŹááşááźáŽá¸ ááąááŹááąáˇá áşáá˛áááŻáˇ áá áşááŻááŻááᯠáááŻá¸áá˝ááşá¸áááş ááźááŻá¸á áŹá¸áááŻááşáááşá áááŻáˇááźáąáŹááˇáş áááşáááş áĄááŻáśá¸áááťááąáŹ ááąáŹááşá¸áááŻáážáŻááťáŹá¸ááᯠááťááşááźááşááźáŽá¸ ááąá¸ááąáŤááąáŤááźááˇáş áážáąáˇáá˝ááş á á áşááŻááşáááŻááşááŤáááşá
- áááşáá˝áŹá OpenResty áááş NGINX áááŻáĄááźáąááśááąáŹááźáąáŹááˇáşá áááşá¸áá˝ááşáĄáááŻááŻáá
áşááŻáážááááşá NGINX áĄáááŻááşá¸áĄáááŻááşá¸. áááşá¸áááş áĄáá˝ááşááźáŽá¸ááŹá¸ááźáŽá¸ ááááŚá¸á
á˝áŹ áááşááážááááˇáşááąá¸áá˝ááşá¸ááťáŹá¸á
á˝áŹááᯠNGINX áĄáááŻááşá¸áĄáááŻááşá¸ááž áĄááźáąááąá¸ááŹá¸ááźáŽá¸ááźá
áşáááşá
Lua developer ááťáŹá¸. áááąáˇá HighLoad ++ áááşáááşá¸ááᯠááŹáááşáá˛áˇ áá°áá˝áąáá˛áˇ á ááŹá¸ááźáąáŹááźáŽá¸ Tarantool áááŻáᲠLua áááŻáˇ ááąá¸ááŹá¸áᏠááźáŹá¸áááşá ááŽáááŻáááŻááşááŤáá°á¸á ááąáŹáşááąáŹáşááťáŹá¸ááťáŹá¸ááᯠLua áá˛áˇááąá¸ááŹá¸áááşá áĽáááŹááťáŹá¸- OpenRestyá Prosody XMPP ááŹááŹá Love2D ááááşá¸áĄááşááťááşá Lua ááᯠWarcraft áážááˇáş áĄááźáŹá¸ááąááŹááťáŹá¸áá˝ááş ááŹááşáá˝ážááşá¸ááąá¸ááŹá¸ááŹá¸áááşá Lua developer áĄááťáŹá¸áĄááźáŹá¸áážáááźáŽá¸ áááşá¸áááŻáˇáá˝ááş ááźáŽá¸ááŹá¸ááźáŽá¸ ááŻáśáˇááźááşáážáŻáážáááąáŹ áĄáááŻááşáĄáááşá¸áá áşááŻáážááááşá ááťá˝ááşáŻááşá Lua ááąá¸áá˝ááşá¸áĄáŹá¸ááŻáśá¸ááᯠááŹááŽáĄáááşá¸áááşáĄáá˝ááşá¸ áĄááźáąááąá¸áá˛áˇááŤáááşá á áŹáááŻáˇá áŹáááşá¸áážáŹ á áŹááąá¸áá˛áˇáĄá፠áááá áşáĄáááşá¸áááşáĄáá˝ááşá¸áážáŹ áĄááźáąáá˝áąáĄááťáŹá¸ááźáŽá¸áážáááąááźáŽá áá°áááŻáˇá ááŹáá˛áˇ áááşáááŻá ááŹáá˛áááŻáᏠááąáŹáşááźáááşá ááąáŹááşá¸áááŻááşááŹá ááśáááąáŹááşá¸á á˝áŹáá˛á áááŻáááŻáˇááąáŹ áááŻá¸ááŹá¸ááąáŹ áĄáááŻááşá¸áĄáááŻááşá¸áááş ááąááŹáááŻááşá¸áá˝ááş ááážáááŤá
OpenResty áá˝ááş GitHub áá˝ááş áá áşááŻááŻááťááşáá˝áŹá¸ááŤá ááźáżááŹáá áşááŻááᯠáááşáá˝ááˇáşáááŻááşáááşá Google Groups áá˝ááş áĄáá˝áąáá˝áąááźáżááŹááťáŹá¸ áá˝áąá¸áá˝áąá¸áááŻááşáááˇáş á áŹáááşá¸áá áşáᯠáážáááźáŽá¸ áááŻááşááᯠá áŹáááŻáˇá áŹáááşá¸ááŤáážááááş - áááşáááşááąáŹáˇááž áááááŤá áĄááşášáááááşá ááŹá¸ áááźáąáŹáááşááąáŹáşáááşá¸ áááŻááşá ááŹá¸ áááşááťá˝ááşá¸ááŤáááşá
ááááşááťáŹá¸áááŻ
- OpenResty áááş áĄáá˝ááşáĄáááşááźáąááąáŹ áááşááąáŹááşáá áşááŻááźá áşááźáąáŹááşá¸ ááťá˝ááşáŻááşáááşááźáááŻááşáááşáᯠááťážáąáŹáşáááˇáşááŤáááşá
- ááŻááşáááş ááťá˝ááşáŻááşáááŻáˇááąá¸ááŹá¸áááˇáşáĄááŹáážááˇáş áááşáá°ááąáŹááźáąáŹááˇáşá áááşá¸áá˝ááş áááşááąáŹááşáážáŻáĄáááˇáşááááˇáşáááşá ááŹááŹá ááŹá¸áááş áĄáá˝ááşáááŻá¸áážááşá¸ááźáŽá¸ áĄáááşá¸áááşááťážááŹááźá áşáááşá
- áááşá¸áááş ááźááşááąáŤáşááźááşá¸ááážááᲠáĄááŽáĄááťáž I/O ááᯠááśáˇáááŻá¸ááąá¸áááşá áá áşááŤáá áşááś NodeJS áá˝ááş ááąá¸áááŻááşááá˛áˇáááŻáˇ ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááąáŤááşáá˝á˛ááťáŹá¸ áážááááşáááŻááşááŤá
- ááťá˝ááşáŻááşáááŻáˇáááş áážááşáááşááąáŹ module áážááˇáş ááťá˝ááşáŻááşáááŻáˇáááŻááşááŤááąáŹ NGINX áááŻáᏠáááŻáĄááşááźáŽá¸ áĄááŹáĄáŹá¸ááŻáśá¸ááťááşááťááşá¸áĄááŻááşááŻááşááąáŹááźáąáŹááˇáş áááşá¸áá˝ááş áá˝ááşáá°á á˝áŹáĄááŻáśá¸ááťáááŻááşááąáŹááźáąáŹááˇáşááźá áşáááşá
- ááźáŽá¸ááŹá¸ááźáŽá¸ ááŻáśáˇááźááşáážáŻáážáááąáŹ áĄáááŻááşáĄáááşá¸á
áááşá¸ááźáąáŹááşá¸áááşááᯠááźáŽá¸áá˝áŹá¸áááşáááŻáᏠáĄáááĄááť áááźáąáŹáá˛áˇáá°á¸á ááąáŹáşááąáŹáşáážááşáá˛áˇ ááŹááşáááşá¸ááźá áşáá˝áŹá¸áááşá
ХпаŃийОСавниПанио!

source: www.habr.com
