ืื ื ืืคืจืกืืื ืฉืื ืืช ืชืืืื ืื"ื ืืื ืก
ืฉืืื ืืืืื, ืฉืื ืืืืืืืจ ืคืจืืืกืื, ืื ื ืขืืื ื-Parallels. ืื ื ืืกืคืจ ืื ืงืฆืช ืขื ืขืฆืื. ืื ื ืืืื ืฉืืืฉื ืจืืขืื ืืืื ืืืชืืืช ืงืื. ืืคืืชื ืืืชืื ืช ืขื ืืืกืื ืืืืื ืืืืืืื: ืืคืขืืื ืื ื ืจืืื ืงืื ืืืืืืืช ืฉืื. ืจืืข ืืืืืื ืืื ืคืืชืื ืชืขืฉืืืชื, ืืชืืืช ืงืื ืฉื ืื ืก ืืฉืจ ืืืืฆืืจ. ืงืื ืฉืืืงืื ืืฉืชืืฉืื ืื ืืื ืื ืืืื ืื ืืืชื.
ืื ืืชื ืืืื ืืื ืื ืืื ืืจืืข. ืืฉืืืืชื ืงืฆืช ืฆืขืืจ, ืืืชื ืืงืืืืชื ืืช ืืกืื ืื ืชืื ืื ืืืื ืฉื ืฉื ื ืืจื-ืืืื. ืื ืขืืืก ืืืื ืืืืื ืืื ืขืืฉืื. ืืืืชื ืืื ืกืื ืืฉืืืชื: "ืืืจ'ื, ืชืืืื ืื, ืืฉ ืืื ืืื ืืืื, ืืื ืืื ืื? ืืื ืืกืืกืื ืืฉ ืื ืฉื? ืื ืขื ื ืื: "ืืฉ ืื ื 100 ืืืื-ืืืื!" ืืืจืชื: "ืืื ืื, 100 ืืืื-ืืืื!" ืืืฉืืชื ืืขืฆืื ืืื ืืฉืืืจ ืืืืืจืืช ืขื ืคื ื ืืคืืงืจ ืฉืื. ืืชื ืืืฉื, ืื, ืืืืจ'ื ืืื ืืืื, ืืื ืืชื ืืืืจ ืืืชืขืกืง ืขื ืืกืื ืื ืชืื ืื ืืจื-ืืจื-ืืชืื ืืืื. ืืื ืืืืืช ืืืืจ. ืืชื ืืืื ืืืืืื ืืืื ืืื ืื?
ืื ื ืืืืข ืืืชืจ ื-20 ืฉืคืืช ืชืื ืืช. ืื ืืฉืื ืฉืืืืชื ืฆืจืื ืืืืื ืืฉืขืืืชื. ืื ื ืืชื ืื ืื ืงืื ื-Erlang, C, C++, Lua, Python, Ruby, ืืฉืื ืืืจ, ืืืชื ืฆืจืื ืืืชืื ืืื. ืืืืคื ืืืื, ืืืืชื ืืืื. ืื ื ืืชื ืืื ืืืฉื ืืช ืืืกืคืจ ืืืืืืง, ืืื ืื ืฉื ืืกืืืืืช ื-20 ืืืกืคืจ ืืื.
ืืืืืื ืฉืื ืื ืืืืื ืืืืขืื ืื ืื Parallels ืืื ืื ืื ื ืขืืฉืื, ืื ื ืื ืืืืจ ืขื ืืื ืื ืื ื ืืื ืืืื ืืื ืื ืื ื ืขืืฉืื. ืื ื ืจืง ืืืื ืื ืฉืืฉ ืื ื 13 ืืฉืจืืื ืืจืืื ืืขืืื, ืืืชืจ ื-300 ืขืืืืื, ืคืืชืื ืืืืกืงืื, ืืืืื ืืืืื. ืื ืชืจืฆื, ืชืืืื ืืงืืช ืืืชื ืืืขืืืจ ืืืืื ืื ืงืจ ืืืืจืฃ ืืืชื ืฆืจืืืื ืืืื ืืช ืืื.
ืกืคืฆืืคืืช, ืืืืืงื ืฉืื ื ืืืชืืช ืืคืืืชืื 2. ืื ืื ื ืืขืกืง ืืืื ืื ื ืืื ืืืืฉื ืืื ืืืืืืืช ืืืคื ืชืืืช, ืื ืื ืื ื ืกืืืืื. ืื ืื ื ืืฉืชืืฉืื ืื'ื ืื ืื ืืฉ ืื ืืื, ืืืงืื ื ืืช ืื ืฉืืื ืืืืชืจ ืืืจืงื ื. ืื MySQL, Redis ื-NGINX. ืืฉ ืื ื ืื ืืจืื ืืืจืื ืืื ืืืื ืืืจืื. ืืฉ ืื ื MongoDB, ืืฉ ืื ื ืืจื ืืืช ืฉืืชืจืืฆืฆืืช, ืืฉ ืื ื ืืื - ืืื ืื ืื ืฉืื, ืืื ื ืื ืขืืฉื ืืช ืื.
OpenResty
ืกืืคืจืชื ืขื ืขืฆืื. ืืืื ืืืืื ืขื ืื ืื ื ืืืื ืืืืจ ืืืื:
- ืืื OpenResty ืืขื ืื ืืืืืื ืืืชื?
- ืืื ืืืืฆืื ืืืื ื ืืกืฃ ืืฉืืฉ ืื ื Python, NodeJS, PHP, Go ืืขืื ืืืจืื ืืื ืืืื ืฉืืืื ืืจืืฆืื ืืื?
- ืืขืื ืืื ืืืืืืืช ืืืืืื. ืืืืชื ืฆืจืื ืืืชืื ืืช ืืืื ืืจืื ืื ืื ืืงื ืื 3,5 ืฉืขืืช, ืื ืืืื ืืื ืืืืืืืช.
OpenResty ืืื NGINX. ืืืืืชื ืืฉ ืื ื ืฉืจืช ืืื ืืจื ื ืืื ืฉืืชืื ืืืื ืืขืืื ืืืืืจืืช. ืื ื ืืืฉื ืฉืจืืื ื ืืฉืชืืฉืื ื-NGINX ืืืืฆืืจ. ืืืืื ืืืืขืื ืฉืืื ืืืืจ ืืืื ืื. ืื ืืฆืจื ืื ืงืื/ืคืื ืกืื ืืจืื ื ืืื ืื, ืื ืื ืื ื ืื ืฆืจืืืื ืืกืืื ืฉืื ืืืจ, ืืืืืง ืืื ืฉืื ืขืฉื ื-Python. Gevent ืื ืืื ืื, ืืขืืื, ืืื ืื ืชืืชืื ืงืื C ืืืฉืื ืืฉืชืืฉ, ืื ืขื Gevent ืชืฉืชืืข ืืืคืืช ืืืชื. ืืืืชื ืื ืืืืืื: ืืงื ืืืืืื ืฉืืืื ืืืืื ืื ืืฉืชืืฉ ืฉื. ืื ืืืฉืื ืื ืืื ืืืคืจ ืืื ืฉืืืขืืช, ืืืฆื ืืช ืืืขืื, ืืืชื ืืืื ืืจื ื ืืืืื ืื ืืื ืืืฆื ืืืชื, ืื ืืืื ื ืืฉืชืืขืื ืืืืจื.
ื-NGINX ืืืจ ืืืฆืข ืืืกืื ืืืืืื ืืชืืื ืกืืื. ืืชื ืื ืฆืจืื ืืืืื ืืื ืืขืฉืืช ืืช ืื ืืืืคื ืื ืืฉื, ืืื ืฉืื ืชืื ืืืคืฉืื, ืืื ืฉืื ืชืืื ืืชืืจืื ืืืคืฉืื. Nginx ืืืื ื ืื ืืคืจืืกื, ืืชื ืื ืฆืจืื ืืืฉืื ืื ืืงืืช - WSGI, PHP-FPM, Gunicorn, Unicorn. Nginx ืืืชืงื, ื ืชืื ืืื ืืืื, ืื ืืืืขืื ืืื ืืขืืื ืืืชื. Nginx ืืขืื ืืงืฉืืช ืืฆืืจื ืืืื ืืช. ืื ื ืืืืจ ืขื ืื ืงืฆืช ืืืืืจ ืืืชืจ. ืืงืืฆืืจ, ืืฉ ืื ืฉืื ืฉืื ืืื ืคืฉืื ืงืืื ืืช ืืืงืฉื, ืืชื ืืื ืขืืื ืืืชื ืืืชื ืืื ืืืืฉ ืืช ืืชืืื ืืืฉืชืืฉ.
Nginx ืืื ืื, ืืื ืืฉ ืืขืื ืืืช: ืืื ืื ืืกืคืืง ืืืืฉื, ืืคืืื ืขื ืื ืืคืืฆ'ืจืื ืืืื ืืืื ืฉืืืืจ'ื ืืืกื ืืชืื ืืชืฆืืจื, ืืืจืืช ืื ืฉืืคืฉืจ ืืืืืืจ. ืืืื ืืื ืื ืืกืคืืง. ืื ืืกืืื ืฉืืืืจ'ื ืืืืืืื, ืืคื ื ืืื ืจื, ืื ื ืจืื ืืคื ื ืฉืืื ื ืฉื ืื, ืื ื ืืช ืืืื ืืชืืื. ืื ืื ื ืืชื?
- ืืืื. ืื ืงืื. LuaJIT ื ืืชื ื-100-200 ืงืืืืืืื ืฉื ืชืงืืจื ืฉื ืืืืจืื ืืชืงืืจื ืืื ืืืืืช ืฉื ืืืฆืืขืื.
- ืืืืจืืช. ืืชืืจืืื LuaJIT ืงืจืื ื-C ืืืฆืืื ืจืืื, ืืืฆืืื ืืกืืืืื ืืื ืืคืกืื ื-Java, ืืืืจืื ืืื ืขืืื ืขืืื. ืืืฉื ืืื ืื ืื ื ืืฉื ืืืฆื ืืืื ืืช, ืืืืจ ื-JIT ืืืื ืื ืืืืชืจ. ืขืืฉืื ืืฉ ืืื ืืืื ืืืชืจ, ืืื ืื ืืืื ืืืืื, ืืืฉื, ืืืชื V8. ืืืง ืืชืืจืืื ื JS ื-Java HotSpot ืืืืจืื ืืืชืจ ืื ืงืืืืช ืืกืืืืืช, ืื ืืืงืืืืช ืืกืืืืื ืื ืขืืืื ืืคืกืืืื.
- ืงื ืืืืื. ืื ืืฉ ืื, ื ืืื, ืืกืืก ืงืื ืฉื Perl, ืืืชื ืื ืืืงืื ื, ืื ืชืืฆื ืืชืื ืชื Perl. ืืืื ืฉืื ืื ืงืืืืื, ืืืื ื ืืงืื ืืฉื, ืืืืื ืืืชื ืื ืืจืื ืืงืฉื. ืื ืืชื ืจืืฆื ืืชืื ืชืื ืืืฉืื ืืืจ, ืืืื ืชืฆืืจื ืื ืืืืฉืืจ ืืืชื ืืืืฉ ืื ืืืฆืื ืืืชื. ืืืงืจื ืฉื ืืืื, ืืื ืคืฉืื. ืื ืืืืจ ืืืื ืืืืื ืืืื ืืฉืืืฉื ืืืื. ืืงื ืื ืืขืจื ืฉืขืชืืื ืืืืื ืืช ืื. ืฉืขืชืืื ืืืจ ืื ืืืจ ืืชืืชื ืงืื ืืืคืงื. ืืขืืืจ ืืฉืืืข ืืื ืืื ืืฉืจ ืืืคืงื ืืขืื.
ืืชืืฆืื ืืื, ืื ื ืจืื ืื:
ืืฉ ืืื ืืจืื. OpenResty ืืกืคื ืืืืจื ืฉื ืืืืืืื, ืื luash ืืื ืื ืืขืืื. ืืืฉ ืื ืืื ืืืื - ืคืจืืก ืืขืืื.
ืืืืืืืช
ืื ืืืืืื, ืืืื ื ืขืืืจ ืืงืื. ืื ื ืงืฆืช ืฉืืื ืขืืื:
ืื ืืฉ ืฉื? ืืื ืืืงืื ืฉื Engins. ืื ืื ื ืื ืืืืืื, ืื ืื ื ืื ืืืชืืื ื ืืชืื ืืฉืื ื, ืื ืื ื ืื ืืืงืืื ืืืื ืืืื - ืืืจ ืืฉ ืื ื ืืช ืื ื-NGINX, ืื ืื ื ืืืื ืืืื ืืืืื ืืขืฆืื ืื.
content_by_lua_block
ืืื ืืืืง ืฉืืืืจ ืฉืื ื ืืืืฉืื ืชืืื ืืืืฆืขืืช ืกืงืจืืคื Lua. ืื ืื ื ืืืงืืื ืืช ืืืฉืชื ื Engines remote_addr
ืืืืื ืืก ืืืชื string.format
. ืื ืืืชื ืืืจ ืืื sprintf
, ืจืง ืืืืื, ืจืง ื ืืื. ืืื ืื ื ื ืืชื ืื ืืช ืื ืืืงืื.
ืืชืืฆืื ืืื, ืื ืืืจืื ืื:
ืืื ืืืื ื ืืืืจ ืืขืืื ืืืืืชื. ืืฃ ืืื ืื ืคืืจืก ืืช Hello World ืืืืฆืืจ. ืืืคืืืงืฆืื ืฉืื ื ืืืจื ืืื ืขืืืจืช ืืืกื ืื ืชืื ืื ืื ืืืงืื ืืืจ ืืจืื ืืืื ืืืื ืืชืืืื.
ืืื ืจืง ืืืฉื ืืืืื. ืื ืื ืืืื ืืื. ืืฉืืืืขืื 100.000 ืืฉืชืืฉืื, ืื ืืืื ืงืฉื ืื ื. ืื ืืืื ื ืฉืชืืฉ ืืืคืืืงืฆืื ืคืฉืืื ืืืืืื. ื ืืคืฉ ืชืืื ืืช, ืืืฉื, ืฉื ืืชืืืื. ืืื ืื ืจืง ื ืืคืฉ, ื ืจืืื ืืช ืืืืืช ืืืคืชื, ืืื ืืืฉืชืืฉ ืืืคืฉ "ืืชืืชืืืื", ื ืืฆื ืืชืืืื, ืืชืืืื ืคืจืืืชืืื ืืื ืืืื. ืจืืฉืืช, ืขืืื ื ืืงืื ืืช ื ืชืื ื ืืืงืฉื ื-backend. ืื ื ืจืื ืืื ืื:
ืฉืชื ืฉืืจืืช ืืืคืฉืจืืช ืื ืืงืืื ืคืจืืืจืื ืฉื GET, ืืื ืกืืืืืื. ืืืืจ ืืื, ื ื ืื, ืืืกื ื ืชืื ืื ืขื ืกืืื ืืืืืช ืืคืชื ืืืจืืื, ืื ื ืืงืืืื ืืืืข ืื ืืืืฆืขืืช ืฉืืืืชืช SQL ืจืืืื. ืื ืคืฉืื. ืื ื ืจืื ืืื ืื:
ืืืืืจ ืืกืคืจืืื resty.mysql
, ืฉืืืจ ืืฉ ืื ื ืืขืจืื. ืื ืื ื ืื ืฆืจืืืื ืืืชืงืื ืืืื, ืืื ืืืื. ืื ื ืืฆืืื ืื ืืืฆื ืืืชืืืจ ืืืืฆืข ืฉืืืืชืช SQL:
ืงืฆืช ืืคืืื ืืื, ืืื ืืื ืขืืื. ืืื 10 ืืื ืืืืื. ืื ืื ื ืฉืืืคืื 10 ืขืจืืื, ืื ืื ื ืขืฆืื ืื, ืื ืื ื ืื ืจืืฆืื ืืืจืืืช ืืืชืจ. ืฉืืืชื ืืืืืื ื-SQL.
ืืืืจ ืืื ืื ื ืืืฆืืื ืชืืื ืืช ืืื ืืฉืืืืชืืช. ืื ืื ื ืืืกืคืื ืืืืจื ืฉื ืืงืฉืืช ืืืืืืื ืืืืช Lua ืฉื ืงืจืืช reqs
, ืืื ืื ื ืื ngx.location.capture_multi
.
ืื ืืืงืฉืืช ืืืื ื ืฉืืืืช ืืืงืืื, ืืืชืฉืืืืช ืืืืืจืืช ืืืื ื. ืืื ืืคืขืืื ืฉืืื ืืืื ืืชืืืื ืฉื ืืืืื ืืืืชืจ. ืื ืืืื ื ื ืจืื ืชืื 50 ืืืืืฉื ืืืช, ืืฉืืื ื ืืื ืืงืฉืืช, ืื ื ืงืื ืชืฉืืื ืชืื 50 ืืืืืฉื ืืืช.
ืืืืืื ืฉืื ืื ื ืขืฆืื ืื ืืื ืจืืฆืื ืืืชืื HTTP ืืืืคืื ืืืืืื, ืื ืื ื ื ืืจืื ื-NGINX ืืขืฉืืช ืืื ืืฉืืืื ื. ืืคื ืฉืจืืืช, ืืืืชื ืืงืฉื ื url/fetch
, ืื ื ืืื:
ืื ืื ื ืขืืฉืื ืืช ืื ืคืฉืื proxy_pass
, ืื ื ืืฆืืื ืื ืืืื ืืฉืืืจ ืืืืืื, ืืืฆื ืืขืฉืืช ืืืช, ืืืื ืขืืื ืขืืืจื ื.
ืืื ืื ืื ืืกืคืืง, ืื ืื ื ืขืืืื ืฆืจืืืื ืืชืช ืืช ืื ืชืื ืื ืืืฉืชืืฉ. ืืจืขืืื ืืคืฉืื ืืืืชืจ ืืื ืืขืฉืืช ืืื ืืกืืืจื ื-JSON, ืืงืืืช, ืืฉืชื ืฉืืจืืช. ืื ืื ื ื ืืชื ืื Content-Type, ืื ืื ื ื ืืชื ืื JSON.
ืืื ืืฉ ืงืืฉื ืืื: ืืืฉืชืืฉ ืื ืจืืฆื ืืงืจืื JSON. ืื ืื ื ืฆืจืืืื ืืืฉืื ืืคืชืืื ืืืืชืืื. ืืคืขืืื ืื ืื ื ืื ืจืืฆืื ืืขืฉืืช ืืช ืื ืืืชืืื. ืืืืืื SEO ืืืืื ืฉืื ืื ืื ื ืืืคืฉืื ืชืืื ืืช, ืื ืื ืื ืืฉื ื ืืื. ืืื ื ืืชื ืืื ืงืฆืช ืชืืื, ืื ืืืืื ืฉืื ืืขื ืืืืคืืฉ ืฉืื ื ืื ืืืกืืคืื ืฉืื ืืืจ ืืืื ืืงืก.
ืื ืืขืฉืืช ืื ืืืื? ืืืืื, ื ืืชื ืืืฉืชืืฉ HTML. ืืฆืืจื ืืื ืืื ืื comme il faut, ืื ืื ืื ื ืจืืฆืื ืืืฉืชืืฉ ืืชืื ืืืช. ืืฉืืื ืื ืืฉ ืกืคืจืืื lua-resty-template
.
ืืื ืจืืืช ืืช ืฉืืืฉ ืืืืชืืืช ืืืคืืืืืช OPM. OpenResty ืืืืข ืขื ืื ืื ืืืืืืช ืืฉืื, ืฉืืจืื ืืชื ืืืื ืืืชืงืื ืืืืจื ืฉื ืืืืืืื ืฉืื ืื, ืืคืจื, lua-resty-template
. ืืื ืื ืืข ืชืื ืืืช ืคืฉืื, ืืืืื ืืชืื ืืืช ื'ื ืื. ืฉื ื ืืชื ืืืชืื ืงืื ืืืืฆืข ืืืืคืช ืืฉืชื ืื.
ืืชืืฆืื ืืื, ืืื ืืืจืื ืืขืจื ืื:
ืืงืื ื ืืช ืื ืชืื ืื ืืจืื ืืจื ื ืืช ืืชืื ืืช, ืฉืื ืืฉืชื ืฉืืจืืช. ืืืฉืชืืฉ ืืจืืฆื, ืืื ืงืืื ืืชืืืื. ืืืืืื ืฉืืจืืื ื ืืช ืืืงืฉื, ืืื ืงืืื ืื ืืืชื ืคืจืืื ืืืืจืื. ืื ืืคืฉืจ ืืืขืช, ืืืื ืืื ืืืคืฉ ืืืืืง ืืช ืื, ืืื ืื ืืฆืืื ืื ืกื ืืช ืืงืฉืชื ื ืืื.
ืืื ืืื ืื, ืืื ืื ืื ื ืืคืืชืื ืืขืืืื ืื ืจืืฆืื ืืืจืืืช ืืช ืื ืืืฉืชืืฉืื. ืืื ื ืขืฉื ืืช ืืืจืฉืื. ืืฉื ืื, ืืื ื ืืื ืืืฆื NGINX ืืืคื ืืืงืฉื ืืืื ืื OpenResty:
- ืฉืื ืจืืฉืื - ืืืฉื, ืืฉืืืฉืชืืฉ ืืืืืง ืืืืข, ืืืกืชืืื ื ืขืืื ืืคื ืืืชืจืืช, ืืคื ืืชืืืช IP ืืืคื ื ืชืื ืื ืืืจืื. ืื ืื ื ืืืืืื ืืืชืื ืืช ืื ืืื ืื ืื ืื ื ืื ืืืืืื ืืช ืื. ืื ืืืื ืืฉืืฉ ืืืจืฉืื, ืื ืื ื ืงืื ืืจืื ืืงืฉืืช, ื ืืื ืื ืชืง ืืืชื ืืงืืืช ืืฉืื ืื.
- ืึฐืฉึทืืึฐืชึตื. ืื ื ืืฉืืชืืื ืืื ื ืชืื ื ืืงืฉื.
- ืชืืื. ืื ื ืืกืคืงืื ืืช ืืชืืื ืืืฉืชืืฉ.
- ืืกื ื ืืืชืจืืช. ืื ื ืืืืืคืื ืืช ืืืชืจืืช ืืชืืืื. ืื ืืฉืชืืฉื ื
proxy_pass
, ื ืืื ืืฉืืชื ืืื ืืืชืจืืช ืืคื ื ืฉื ืืชื ืืช ืื ืืืฉืชืืฉ. - ืืกื ื ืืืฃ. ืื ืื ื ืืืืืื ืืฉื ืืช ืืช ืืืืฃ.
- ืืืื ืก - ืจืืฉืื. ืืชื ืืืื ืืืชืื ืืืื ืื ื- elasticsearch ืืื ืฉืืื ื ืืกืคืช.
ืืืจืฉืื ืฉืื ื ืชืืจืื ืืขืจื ืื:
ื ืืกืืฃ ืืช ืื ืืื location
, ืฉืชืืืจื ื ืงืืื, ืืฉื ืฉื ืืช ืืงืื ืืื:
ืื ืื ื ืืกืชืืืื ืืจืืืช ืื ืืฉ ืื ื ืืกืืืื ืขืืืืืช. ืื ืื, ืื ืื ืื ื ืืืงืฉืื ืืืฉืืจ. ืืฉืชืืฉืื ืขืจืืืืืื ืืืืืืื ืื ืืฉ ืฉืื ืฆืจืืืื ืืืืืืจ ืืกืืืื ืงืืืฅ Cookie. ืืื, ื ืฉืื ืืช ืื ืื ืืจืืืก:
ืืงืื ืืขืืืื ืขื Redis ืืื ืคืฉืื ืืืื ืืืื ื ืฉืื ื ืืฉืคืืช ืืืจืืช. ืืื ืขื ืืืช, ืื ืืงืื/ืคืื, ืคื ืืฉื, ืื ืืืกื. ืื ืืชื ืืืชื ืงืื ืกืื ืืจืื ื, ืื ืขืืื ืืืืคื ืืกืื ืืจืื ื. ืืืขื ืืื ืืชืช, ืืื ืขืฉื ืืืช ืืืื.
ืืื ื ืขืฉื ืืช ืืืจืฉืื ืืขืฆืื:
ืื ื ืืืืจืื ืฉืขืืื ื ืืงืจืื ืืช ืืืฃ ืืืงืฉื. ืื ื ืืงืืืื ืืจืืืื ืืื ืฉื POST ืืืืืงืื ืฉืืื ืืกื ืืืกืืกืื ื ืืื ืืช. ืื ืื ืฉืืืืื, ืื ื ืงืืจืืื ืื ืืืฉืืจ. ืืื ื ืืื, ืื ืืชืื ืืช ืืืกืืืื ืืจืืืก:
ืื ืชืฉืืื ืืืืืืจ ืืช ืืขืืืื, ืื ืื ื ืขืฉื ืืฉืชื ืฉืืจืืช:
ืืืืืื ืคืฉืืื ืืกืคืงืืืืืืืช. ืืืืื, ืื ื ืขืฉื ืฉืืจืืช ืฉืืจืื ืืื ืฉืื ืืชืืืื. ืืื ืื ืืืืจ ืืืชื ื. ืื ืืืื ื ืขืืืจ ืขื ืื ื ืืชื ืืขืฉืืช ืืืืฆืืจ.
- ืืืืจื ืืื ืืืืืกืื. ืืคืขืืื ืื ืื ื ืฆืจืืืื ืืืืฆืื ืจืง ืืขื ื ืชืื ืื ื-backend: ืืืคืฉืื ืื ืื ื ืฆืจืืืื ืืืื ืืก ืชืืจืื, ืืืคืฉืื ืื ืื ื ืฆืจืืืื ืืืฆืื ืจืฉืืื, ืืืืจ ืืื ืืฉืชืืฉืื ื ืืฆืืื ืืืชืจ ืืขืช, ืืฆืจืฃ ืืื ื ืื ืกืืืืกืืืงื. ืืฉืื ืื ืื ืงืื. ืืื ืืชืืืืช ืืื ืืืืืืช ื ืืชื ืืืืื ืืงืืืช ืจืื. ืื ืืขืฉื ืืช ืื ืืืืจ, ืงื ืื ืืืจ.
- ืขืืืื ืืงืืื ืฉื ื ืชืื ืื. ืืคืขืืื ืื ืื ื ืจืืฆืื ืืืืืืข ืคืจืกืื ืืืฃ ืฉืื ื, ืืื ื ืืงืืืื ืืช ืืคืจืกืื ืืื ืืืืฆืขืืช ืืงืฉืืช API. ืื ืืืื ืงื ืืขืฉืืช ืืื. ืื ืื ื ืื ืืขืืืกืื ืืช ื-backend ืฉืื ื, ืฉืืืจ ืืืฉื ืืขืืื ืงืฉื. ืืชื ืืืื ืืืกืืฃ ืืืชื ืืืืกืืฃ ืืืชื ืืื. ืื ืื ื ืืืืืื ืืจืงืื ืืืืฉืื JS ืื ืืืืคื, ืื ืชืง ืืืชื ืืืขืื ืืฉืื ืืจืืฉ ืืคื ื ืฉื ืืชื ืื ืืืชื ืืืฉืชืืฉ.
- ืืืืช ืืืืงืจื-ืฉืืจืืช. ืื ืื ืืงืจื ืืื ืืืื, ืืืฉืืชื ืืืชื. ืืคื ื ืื ืขืืืชื ืืืืจืช ืื ืฆืืจ ืืขืืกืงืช ืืืืืื ืืืงืืจืื ื ืืืกืคืงืช ืืืืืืื ืืืืืฆืืช ืืืืฉืืืืช ืืืฉืคืืืืช ืืืจืฅ. ืืฆืจื ื ืฉืืจืืช, ืืจืื ืืืจืื ื ืขืฉื ืฉื ืืืืชื ืื ืื ืื: ื ืืชืื, ืืจืฉืื ืืขืื.
OpenResty ืืืื ืืฉืืฉ ืืืืง ืขืืืจ ืืืืงืจื-ืฉืืจืืชืื ืฉืื, ืืืกืคืง ืืืฉื ืืืช ืืื ืืืจ ืืืืฉืง ืืืื. ืืืืืื ืฉื ืืชื ืืืชืื ืืืงืจื-ืฉืืจืืชืื ืืฆืืจื ืืื ืฉืืฉ ืื ืืื Node.js, PHP ืืื, Python ืืื, ืืฉืื ืฉื Erlang ืืื, ืื ืื ื ืืืื ืื ืฉืื ืื ื ืื ืจืืฆืื ืืฉืืชื ืืช ืืืชื ืืงืื ืืื ืืงืื. ืืื, ื ืืชื ืืืืจ ืืช OpenResty ืืืืืช. - ืกืืืืกืืืงื ืื ืืชืื. ืืืจื ืืื NGINX ื ืืฆื ืืื ืืกื, ืืื ืืืงืฉืืช ืขืืืจืืช ืืจืื. ืื ืืืงืื ืืื ืื ืืืื ื ืื ืืืกืืฃ. ืืชื ืืืื ืืื ืืืฉื ืืฉืื ืืืืขืืืช ืืืชื ืืื ืฉืื, ืืืฉื, Elasticsearch, Logstash, ืื ืคืฉืื ืืืชืื ืืืชื ืืืืื ืืื ืืฉืืื ืืืชื ืืื ืฉืื.
- ืืขืจืืืช ืืจืืืืช ืืฉืชืืฉืื. ืืืืืื, ืืฉืืงืื ืืงืืื ืื ืืืืื ืืืื ืืืื ื. ืืืื ืืงืืืคืืืื, ืืืืกื ืืจ ืืืืืฉ ืืืืจ ืขื ืืื ืืืฆืืจ ืืืืืคืืก ืืืืจ ืืืฉืืง ืืจืืื ืืฉืชืชืคืื ืืืืฆืขืืช OpenResty.
- ืกืื ืื ืืงืฉืืช (WAF). ืืืื ืื ืืืคื ืชื ืืืฆืืจ ืื ืืื ื ืืืืืช ืืฉ ืฉื ืืืฉืืื ืืื ืืจื ื; ืืฉื ื ืฉืืจืืชืื ืจืืื ืืืกืคืงืื ืืืชื. ืืืืฆืขืืช OpenResty, ืืชื ืืืื ืืืฆืืจ ืืขืฆืื ืืืืช ืืฉ ืฉื ืืคืืืงืฆืืืช ืืื ืืจื ื ืฉืชืกื ื ืืคืฉืืืช ืืืงืืืช ืืงืฉืืช ืืืชืื ืืืจืืฉืืช ืฉืื. ืื ืืฉ ืืื Python, ืื ืืชื ืืืื ืื ืฉ-PHP ืืืืื ืื ืืืืจืง ืืชืืื, ืืื ืื ืื, ืืืืื, ืชืืฆืืื ืืืชื ืืื ืืงืื ืืืงืื ืกืืื. ืืชื ืืืืข ืฉืืฉ ืื MySQL ื-Python. ืื ืจืื ืฉืื ืื ืกื ืืขืฉืืช ืืืืฉืื ืืขืืจ ืกืคืจืืืช ืืืืืืืจ ืืฉืื ืืืกื ืื ืชืื ืื. ืืื, ืืชื ืืืื ืืกื ื ืฉืืืืชืืช ืืืืจืืช ืืืืืจืืช ืืืืื ืืืฉ ืืืืืช.
- ืงืืืื. ืืืืืื ืฉ-OpenResty ืื ืืื ืขื NGINX, ืืฉ ืื ืืื ืืก - ืื ืงืืืืช NGINX. ืืื ืืืื ืืืื, ืืืืง ืืืื ืืืฉืืืืช ืฉืืืื ืื ืืืชืืื ืืืจ ื ืคืชืจื ืขื ืืื ืงืืืืช NGINX.
ืืคืชืื Lua. ืืชืืื ืืืืจืชื ืขื ืืืืจ'ื ืฉืืืืขื ืืืื ืืืืจืื ืฉื HighLoad++ ืืฉืืขืชื ืฉืจืง Tarantool ื ืืชื ืืืืื. ืื ืื ื ืืื, ืืจืื ืืืจืื ืืชืืืื ืืืืื. ืืืืืืืช: OpenResty, ืฉืจืช Prosody XMPP, ืื ืืข ืืฉืืง Love2D, Lua ืฉื ืืชื ื-Warcraft ืืืืงืืืืช ืืืจืื. ืืฉ ืืจืื ืืคืชืื Lua, ืืฉ ืืื ืงืืืื ืืืืื ืืืืืื. ืื ืืฉืืืืช ืฉืื ืืืื ื ืคืชืจื ืชืื ืืื ืฉืขืืช. ืืฉืืชื ืืืชื ืืจืฉืืืช ืืชืคืืฆื, ืืืฉ ืชืื ืืื ืืงืืช ืืฉ ืืืจ ืฉืื ืชืืืืืช, ืฉืืชืืจืืช ืื ืืืื, ืื ืื. ืื ืืขืืื. ืืืจืื ืืฆืขืจ, ืงืืืื ืจืืื ืืช ืืืืื ืืื ืื ื ืืฆืืช ืืื ืืงืื.
ืืฉ GitHub ืขืืืจ OpenResty, ืฉืื ืืชื ืืืื ืืคืชืื ืืขืื ืื ืืฉืื ื ืฉืืจ. ืืฉ ืจืฉืืืช ืชืคืืฆื ื-Google Groups, ืฉืื ืืชื ืืืื ืืืื ืื ืืฉืืื ืืืืืื, ืืฉ ืจืฉืืืช ืชืคืืฆื ืืกืื ืืช - ืื ืืคืฉืจ ืืืขืช, ืืืื ืืชื ืื ืืืืจ ืื ืืืืช, ืืื ืืชื ืืืืข ืกืื ืืช.
ืชืืฆืืืช ืฉื
- ืื ื ืืงืืื ืฉืืฆืืืชื ืืืขืืืจ ืฉ-OpenResty ืืื ืืกืืจืช ื ืืื ืืืื ืืืืชืืืช ืืืื ืืจื ื.
- ืืฉ ืื ืืืกืื ืื ืืกื ื ืืื, ืืืืืื ืฉืืงืื ืืืื ืืื ืฉืื ืื ื ืืืชืืื ืื, ืืฉืคื ืื ืคืฉืืื ืืืื ืืืืืกืืืช.
- ืื ืืกืคืง ืงืื/ืคืื ืืกืื ืืจืื ื ืืื ืืชืงืฉืจืืืืช ืืืืจืืช, ืื ืืืื ืื ื ืืืจืืืช ืืื ืฉืืคืขืืื ืื ืื ื ืืืืืื ืืืชืื ื-NodeJS.
- ืืฉ ืื ืคืจืืกื ืงืื, ืืืืืื ืฉืื ืื ื ืฆืจืืืื ืจืง NGINX ืขื ืืืืืื ืืืจืืฉ ืืืงืื ืฉืื ื, ืืืื ืขืืื ืืื.
- ืงืืืื ืืืืื ืืืืืื.
ืื ืกืืคืจืชื ืืคืืจืื ืืื ืขืืฉืื ื ืืชืื, ืืชืืจืจ ืฉืื ืกืืคืืจ ืืจืื ืืืื.
ืชืืื ืื!
ืืงืืจ: www.habr.com