OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒแƒฉแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ— แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ ++ 2016 แƒฌแƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ˜แƒ›แƒแƒ แƒ—แƒ แƒกแƒ™แƒแƒšแƒ™แƒแƒ•แƒแƒจแƒ˜, แƒ›แƒแƒกแƒ™แƒแƒ•แƒ˜แƒก แƒ›แƒแƒฎแƒšแƒแƒ‘แƒšแƒแƒ“, แƒ’แƒแƒกแƒฃแƒšแƒ˜ แƒฌแƒšแƒ˜แƒก 7-8 แƒœแƒแƒ”แƒ›แƒ‘แƒ”แƒ แƒก. แƒ•แƒšแƒแƒ“แƒ˜แƒ›แƒ”แƒ  แƒžแƒ แƒแƒขแƒแƒกแƒแƒ•แƒ˜ แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒแƒ•แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒคแƒแƒ แƒ—แƒแƒ•แƒแƒ— NGINX แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ OpenResty-แƒ˜แƒ— แƒ“แƒ Lua-แƒ˜แƒ—.

แƒ›แƒแƒ’แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒแƒก, แƒ›แƒ” แƒ›แƒฅแƒ•แƒ˜แƒ แƒ•แƒšแƒแƒ“แƒ˜แƒ›แƒ˜แƒ  แƒžแƒ แƒแƒขแƒแƒกแƒแƒ•แƒ˜, แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ”แƒ‘แƒก. แƒชแƒแƒขแƒแƒก แƒฉแƒ”แƒ›แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒ’แƒ˜แƒงแƒ•แƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ”แƒ›แƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ› แƒ›แƒ”แƒแƒ—แƒฎแƒ”แƒ“แƒก แƒ•แƒแƒขแƒแƒ แƒ”แƒ‘ แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒแƒจแƒ˜. แƒ›แƒ” แƒ’แƒแƒ•แƒฎแƒ“แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ’แƒแƒ’แƒ”แƒ‘แƒ˜แƒ—: แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒกแƒ˜แƒ–แƒ›แƒแƒ แƒจแƒ˜ แƒ™แƒแƒ“แƒก แƒ•แƒฎแƒ”แƒ“แƒแƒ•. แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ˜แƒก แƒ›แƒ”แƒแƒ—แƒฎแƒ”แƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒ“แƒฃแƒกแƒขแƒ แƒ˜แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ, แƒ™แƒแƒ“แƒ˜แƒก แƒฌแƒ”แƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก. แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ’แƒแƒœแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ”แƒ  แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ‘แƒก แƒ›แƒแƒก.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒ แƒชแƒฃแƒ“แƒ˜ แƒ˜แƒงแƒ. แƒชแƒแƒขแƒ แƒฃแƒ›แƒชแƒ แƒแƒกแƒ˜ แƒ แƒแƒ› แƒ•แƒ˜แƒงแƒแƒ•แƒ˜, แƒ›แƒแƒ•แƒ”แƒ“แƒ˜ แƒ“แƒ แƒ›แƒแƒ›แƒชแƒ”แƒก แƒ”แƒก แƒแƒ แƒ˜ แƒขแƒ”แƒ แƒแƒ‘แƒแƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ. แƒแƒฎแƒšแƒ แƒแƒฅ แƒงแƒ•แƒ”แƒšแƒแƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒ. แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜ แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ•แƒ™แƒ˜แƒ—แƒฎแƒ”: โ€žแƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ, แƒ›แƒ˜แƒ—แƒฎแƒแƒ แƒ˜แƒ—, แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒฅแƒ•แƒ—, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ? แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ‘แƒแƒ–แƒ แƒ’แƒแƒฅแƒ•แƒก แƒ˜แƒฅ? แƒ›แƒแƒ— แƒ›แƒ˜แƒžแƒแƒกแƒฃแƒฎแƒ”แƒก: โ€แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก 100 แƒ’แƒ˜แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜!โ€ แƒ›แƒ” แƒ•แƒฃแƒ—แƒฎแƒแƒ แƒ˜: "แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, 100 แƒ’แƒ˜แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜!" แƒ“แƒ แƒ›แƒ” แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒ˜, แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ›แƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒ˜แƒœแƒ แƒฉแƒ”แƒ›แƒ˜ แƒžแƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”. แƒ—แƒฅแƒ•แƒ”แƒœ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ—, แƒ“แƒ˜แƒแƒฎ, แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ— แƒแƒ› แƒ›แƒ แƒแƒ•แƒแƒš แƒขแƒ”แƒ แƒแƒ‘แƒแƒ˜แƒขแƒ˜แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒก. แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฃแƒ›แƒชแƒ แƒแƒกแƒ˜. แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ˜แƒแƒ— แƒ”แƒก แƒ แƒ แƒ“แƒแƒ แƒขแƒงแƒ›แƒแƒ?

แƒ›แƒ” แƒ•แƒ˜แƒชแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก 20-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ”แƒœแƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ”แƒ แƒ™แƒ•แƒ˜แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜. แƒ™แƒแƒ“แƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ”แƒœ Erlang, C, C++, Lua, Python, Ruby, แƒ แƒแƒฆแƒแƒช แƒกแƒฎแƒ•แƒ แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒญแƒ แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ. แƒ–แƒฃแƒกแƒขแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒšแƒ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ“แƒฆแƒแƒช 20-แƒจแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜ แƒ“แƒแƒ˜แƒ™แƒแƒ แƒ’แƒ.

แƒ แƒแƒ“แƒ’แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒ› แƒ˜แƒชแƒ˜แƒก แƒ แƒ แƒแƒ แƒ˜แƒก แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ แƒแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—, แƒแƒ  แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ˜ แƒ•แƒแƒ แƒ— แƒ“แƒ แƒ แƒแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—. แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก 13 แƒแƒคแƒ˜แƒกแƒ˜ แƒ›แƒ—แƒ”แƒšแƒก แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜, 300-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒ”แƒšแƒ˜, แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒ™แƒแƒ•แƒจแƒ˜, แƒขแƒแƒšแƒ˜แƒœแƒกแƒ แƒ“แƒ แƒ›แƒแƒšแƒขแƒแƒจแƒ˜. แƒ—แƒฃ แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜ แƒ’แƒแƒฅแƒ•แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒฆแƒแƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒแƒšแƒขแƒแƒจแƒ˜, แƒ—แƒฃ แƒ–แƒแƒ›แƒ—แƒแƒ แƒจแƒ˜ แƒชแƒ˜แƒ•แƒ แƒ“แƒ แƒ–แƒฃแƒ แƒ’แƒ˜แƒก แƒ’แƒแƒ—แƒ‘แƒแƒ‘แƒ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—.

แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ แƒžแƒ˜แƒ—แƒแƒœ 2-แƒจแƒ˜ แƒฌแƒ”แƒ แƒก. แƒฉแƒ•แƒ”แƒœ แƒ‘แƒ˜แƒ–แƒœแƒ”แƒกแƒจแƒ˜ แƒ•แƒแƒ แƒ— แƒ“แƒ แƒ“แƒ แƒ แƒแƒ  แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ›แƒแƒ“แƒฃแƒ แƒ˜ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ•แƒ˜แƒขแƒแƒœแƒฏแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Django-แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒ แƒ แƒแƒช แƒแƒ  แƒ˜แƒงแƒ แƒกแƒแƒญแƒ˜แƒ แƒ, แƒแƒ•แƒ˜แƒฆแƒ”แƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒงแƒแƒ แƒ”แƒ—. แƒแƒกแƒ”แƒ•แƒ” MySQL, Redis แƒ“แƒ NGINX. แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ แƒแƒ›แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก MongoDB, แƒ’แƒ•แƒงแƒแƒ•แƒก แƒ™แƒฃแƒ แƒ“แƒฆแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒแƒ แƒ‘แƒ˜แƒแƒœ, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ - แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒฉแƒ”แƒ›แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒ แƒ›แƒ” แƒแƒ›แƒแƒก แƒแƒ  แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘.

OpenResty

แƒฉแƒ”แƒ›แƒก แƒ—แƒแƒ•แƒ–แƒ” แƒ•แƒฃแƒ—แƒฎแƒแƒ แƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒแƒ— แƒ แƒแƒ–แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ“แƒฆแƒ”แƒก:

  • แƒ แƒ แƒแƒ แƒ˜แƒก OpenResty แƒ“แƒ แƒ แƒ˜แƒ—แƒ˜ แƒญแƒแƒ›แƒ”แƒœ?
  • แƒ แƒแƒขแƒแƒ› แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ’แƒแƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒ‘แƒแƒ แƒ‘แƒแƒšแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒ•แƒแƒฅแƒ•แƒก Python, NodeJS, PHP, Go แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ แƒแƒฆแƒแƒชแƒ”แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ?
  • แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒกแƒแƒฃแƒ‘แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ”แƒก แƒ˜แƒงแƒ 3,5 แƒกแƒแƒแƒ—แƒ˜, แƒแƒกแƒ” แƒ แƒแƒ› แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

OpenResty แƒแƒ แƒ˜แƒก NGINX. แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒงแƒแƒšแƒแƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœแƒ˜ แƒ•แƒ”แƒ‘ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘, แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒ’แƒแƒœแƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก NGINX-แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜. แƒงแƒ•แƒ”แƒšแƒแƒ› แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ“แƒ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ. แƒ›แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒ”แƒก แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒ˜ I/O แƒ›แƒแƒกแƒจแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒแƒคแƒ แƒ˜แƒก แƒชแƒ˜แƒ™แƒšแƒ˜, แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒก แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜. Gevent แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ”แƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ“แƒแƒฌแƒ”แƒ  C แƒ™แƒแƒ“แƒก แƒ“แƒ แƒ แƒแƒ›แƒ” แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ”แƒ“ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒ”แƒ•แƒ”แƒœแƒขแƒ˜แƒ— แƒ’แƒแƒ’แƒ˜แƒŸแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ. แƒ›แƒ” แƒ›แƒฅแƒแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ: แƒ›แƒ—แƒ”แƒšแƒ˜ แƒแƒ แƒ˜ แƒ“แƒฆแƒ” แƒ“แƒแƒกแƒญแƒ˜แƒ แƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒก, แƒ—แƒฃ แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ แƒ˜แƒฅ. แƒ—แƒฃ แƒ•แƒ˜แƒœแƒ›แƒ”แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒ•แƒ˜แƒ แƒ แƒแƒ  แƒ’แƒแƒ”แƒ—แƒฎแƒแƒ แƒ, แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒ  แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ, แƒ“แƒแƒฌแƒ”แƒ แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒ“แƒ Google-แƒ›แƒ แƒ•แƒ”แƒ  แƒ˜แƒžแƒแƒ•แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒกแƒฃแƒš แƒ’แƒแƒ•แƒ’แƒ˜แƒŸแƒ“แƒ”แƒ‘แƒแƒ“แƒ˜แƒ—.

NGINX-แƒก แƒฃแƒ™แƒ•แƒ” แƒแƒฅแƒ•แƒก แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒคแƒ˜แƒฅแƒ แƒ˜ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒก แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒฃแƒ แƒแƒ“, แƒ แƒแƒ› แƒกแƒแƒ“แƒ›แƒ” แƒแƒ  แƒจแƒ”แƒแƒœแƒ”แƒšแƒแƒ—, แƒ แƒแƒ—แƒ แƒกแƒแƒ“แƒ›แƒ” แƒแƒ  แƒ“แƒแƒ™แƒแƒ แƒ’แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ”แƒ‘แƒ˜. Nginx แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒคแƒ˜แƒฅแƒ แƒ˜ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒฆแƒแƒ— - WSGI, PHP-FPM, Gunicorn, Unicorn. Nginx แƒ˜แƒงแƒ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ’แƒแƒ“แƒแƒ”แƒชแƒ แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก, แƒ›แƒแƒ— แƒ˜แƒชแƒ˜แƒแƒœ แƒ แƒแƒ’แƒแƒ  แƒ˜แƒ›แƒฃแƒจแƒแƒแƒœ แƒ›แƒแƒกแƒ—แƒแƒœ. Nginx แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ˜แƒ—. แƒแƒ›แƒแƒ–แƒ” แƒชแƒแƒขแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘. แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒคแƒแƒ–แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ›แƒ˜แƒ˜แƒฆแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒ แƒแƒ“แƒ˜แƒก แƒ“แƒแƒแƒ›แƒฃแƒจแƒแƒ•แƒ แƒ“แƒ แƒ แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒแƒฌแƒแƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒœแƒขแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก.

Nginx แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ: แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜, แƒ—แƒฃแƒœแƒ“แƒแƒช แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒ› แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ—, แƒ แƒแƒช แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ›แƒ แƒฉแƒแƒกแƒ•แƒ”แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜, แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ”แƒก แƒซแƒแƒšแƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒขแƒแƒแƒ‘แƒแƒแƒก แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒ›แƒ, แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒ แƒ•แƒ แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ, แƒšแƒฃแƒ แƒฉแƒแƒกแƒ•แƒ”แƒก แƒ›แƒแƒกแƒจแƒ˜. แƒ แƒแƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ?

  • ะ ะฐะทะผะตั€. แฒ˜แƒก แƒžแƒแƒขแƒแƒ แƒแƒ. LuaJIT แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 100-200 แƒ™แƒ˜แƒšแƒแƒ‘แƒแƒ˜แƒขแƒ˜ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒ”แƒ“แƒœแƒแƒ“แƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ  แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒก.
  • แƒกแƒ˜แƒฉแƒฅแƒแƒ แƒ˜แƒก. LuaJIT แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜ แƒ‘แƒ”แƒ•แƒ  แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒฎแƒšแƒแƒก แƒแƒ แƒ˜แƒก C-แƒกแƒ—แƒแƒœ, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒแƒ•แƒก Java-แƒก, แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒจแƒ˜ แƒ™แƒ˜ แƒแƒฏแƒแƒ‘แƒ”แƒ‘แƒก แƒ›แƒแƒก. แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ˜แƒ’แƒ˜ แƒ˜แƒ—แƒ•แƒšแƒ”แƒ‘แƒแƒ“แƒ แƒฎแƒ”แƒšแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ“, แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒแƒ’แƒแƒ  JIT แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒšแƒแƒ“. แƒแƒฎแƒšแƒ แƒแƒ แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒ’แƒแƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒซแƒ˜แƒ›แƒ”แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ˜แƒ’แƒ˜แƒ•แƒ” V8. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ JS แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜ แƒ“แƒ Java HotSpot แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒ˜แƒœแƒช แƒ™แƒแƒ แƒ’แƒแƒ•แƒ”แƒœ.
  • แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒกแƒฌแƒแƒ•แƒšแƒ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ—, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, Perl แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒแƒ–แƒ แƒ“แƒ แƒแƒ  แƒฎแƒแƒ แƒ— แƒ“แƒแƒฏแƒแƒ•แƒจแƒœแƒ˜แƒšแƒ˜, แƒ•แƒ”แƒ  แƒ˜แƒžแƒแƒ•แƒ˜แƒ— Perl แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ”แƒ‘แƒก. แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ”แƒœ, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒแƒ˜แƒงแƒ•แƒแƒœแƒ”แƒก แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ‘แƒ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒ“แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ. แƒ—แƒฃ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒ แƒ แƒแƒ›แƒ”แƒจแƒ˜ แƒ’แƒกแƒฃแƒ แƒ—, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒ’แƒ˜แƒฌแƒ˜แƒแƒ— แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ แƒแƒœ แƒžแƒแƒ•แƒœแƒ. แƒšแƒฃแƒแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒšแƒฃแƒแƒก แƒกแƒฌแƒแƒ•แƒšแƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒฃแƒ›แƒชแƒ แƒแƒกแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒกแƒแƒ› แƒ“แƒฆแƒ”แƒจแƒ˜. แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒแƒ แƒ˜ แƒกแƒแƒแƒ—แƒ˜ แƒ“แƒแƒ›แƒญแƒ˜แƒ แƒ“แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“. แƒแƒ แƒ˜ แƒกแƒแƒแƒ—แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒ•แƒฌแƒ”แƒ แƒ“แƒ˜ แƒ™แƒแƒ“แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜. แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒ–แƒ” แƒฌแƒแƒ•แƒ˜แƒ“แƒ แƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ“แƒ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒแƒฅ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ. OpenResty-แƒ› แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒ แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช luash, แƒแƒกแƒ”แƒ•แƒ” แƒซแƒ แƒแƒ•แƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜. แƒ—แƒฅแƒ•แƒ”แƒœ แƒ™แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒ–แƒแƒ“ แƒ’แƒแƒฅแƒ•แƒ— - แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜

แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒšแƒ”แƒฅแƒกแƒ”แƒ‘แƒ˜, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ™แƒแƒ“แƒ–แƒ”. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒžแƒแƒขแƒแƒ แƒ Hello World:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ˜แƒฅ? แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒœแƒ’แƒ˜แƒœแƒกแƒ˜แƒก แƒแƒ“แƒ’แƒ˜แƒšแƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ. แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒœแƒ”แƒ แƒ•แƒ˜แƒฃแƒšแƒแƒ‘แƒ—, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒฌแƒ”แƒ แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ”แƒ‘แƒก, แƒแƒ  แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒ–แƒแƒก - แƒฉแƒ•แƒ”แƒœ แƒ˜แƒก แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก NGINX-แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒฎแƒแƒ•แƒ แƒแƒ‘แƒ— แƒ™แƒแƒ แƒ’แƒ˜ แƒ“แƒ แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ˜แƒ—.

content_by_lua_block แƒแƒ แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒ›แƒกแƒแƒฎแƒฃแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒœแƒขแƒ”แƒœแƒขแƒก Lua แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— Engins แƒชแƒ•แƒšแƒแƒ“แƒก remote_addr แƒ“แƒ แƒฉแƒแƒกแƒ•แƒ˜แƒ— string.format. แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ แƒ แƒแƒช sprintf, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒšแƒฃแƒแƒจแƒ˜, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒฌแƒแƒ แƒ˜. แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ›แƒแƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ˜แƒก แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ— แƒ แƒ”แƒแƒšแƒฃแƒ  แƒกแƒแƒ›แƒงแƒแƒ แƒแƒก. แƒแƒ แƒแƒ•แƒ˜แƒœ แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก Hello World แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒก. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ›แƒ˜แƒ“แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒแƒœ แƒกแƒแƒ“แƒ›แƒ” แƒกแƒฎแƒ•แƒแƒ’แƒแƒœ แƒ“แƒ แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ“ แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ แƒžแƒแƒกแƒฃแƒฎแƒก.

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ˜แƒก แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ–แƒ˜แƒก แƒ“แƒ แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ. แƒแƒ  แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ แƒ’แƒ˜. แƒ แƒแƒ“แƒ”แƒกแƒแƒช 100.000 XNUMX แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒแƒ“แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ แƒ—แƒฃแƒšแƒ˜แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒขแƒ”แƒ‘แƒ˜แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒ›แƒแƒ•แƒซแƒ”แƒ‘แƒœแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ‘แƒ— แƒกแƒแƒ™แƒ•แƒแƒœแƒซแƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ”แƒ‘แƒก แƒ“แƒ, แƒ—แƒฃ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ˜แƒก "แƒ™แƒœแƒฃแƒขแƒ”แƒ‘แƒก", แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒžแƒแƒ•แƒ˜แƒ— แƒ™แƒแƒขแƒ”แƒ‘แƒก, แƒ‘แƒ”แƒฌแƒ•แƒ˜แƒแƒœ แƒ™แƒแƒขแƒ”แƒ‘แƒก แƒ“แƒ แƒ.แƒจ. แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒ–แƒ”. แƒ”แƒก แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒแƒ แƒ˜ แƒฎแƒแƒ–แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— GET แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ’แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒ“แƒแƒœ แƒกแƒแƒ™แƒ•แƒแƒœแƒซแƒ แƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒœแƒ˜แƒจแƒœแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒแƒ› แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แฒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒ”แƒก แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ resty.mysql, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ™แƒ•แƒ” แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒจแƒ˜. แƒแƒ แƒแƒคแƒ แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒ–แƒแƒ“แƒแƒ. แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ•แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— SQL แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒแƒฅ แƒชแƒแƒขแƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒแƒฅ 10 แƒแƒ แƒ˜แƒก แƒ–แƒฆแƒ•แƒแƒ แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— 10 แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒก, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ แƒ— แƒ–แƒแƒ แƒ›แƒแƒชแƒ˜, แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ›แƒ”แƒขแƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ. แƒ“แƒแƒ›แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ แƒšแƒ˜แƒ›แƒ˜แƒขแƒ˜ SQL-แƒจแƒ˜.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒ“แƒ แƒ•แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒšแƒฃแƒแƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒ”.แƒฌ reqsแƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— ngx.location.capture_multi.

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“, แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜ แƒ™แƒ˜ แƒฉแƒ•แƒ”แƒœแƒ—แƒแƒœ แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ. แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒฃแƒ“แƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒœแƒ”แƒšแƒ˜แƒก แƒ แƒ”แƒแƒ’แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก. แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒœแƒ˜ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— 50 แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›แƒจแƒ˜ แƒ“แƒ แƒ’แƒแƒ•แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ— แƒแƒกแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒžแƒแƒกแƒฃแƒฎแƒก 50 แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›แƒจแƒ˜ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ–แƒแƒ แƒ›แƒแƒชแƒ”แƒ‘แƒ˜ แƒ•แƒแƒ แƒ— แƒ“แƒ แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ HTTP-แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ แƒ“แƒ แƒฅแƒ”แƒจแƒ˜แƒ แƒ”แƒ‘แƒ, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ˜แƒซแƒฃแƒšแƒ”แƒ‘แƒ— NGINX-แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก. แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ˜แƒงแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ url/fetch, แƒ˜แƒก แƒแƒฅแƒแƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒ— proxy_pass, แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ—, แƒกแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒฅแƒ”แƒจแƒ˜, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒก แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ˜แƒœแƒช แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒชแƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก. แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ˜แƒ“แƒ”แƒแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ JSON-แƒจแƒ˜, แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“, แƒแƒ  แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒซแƒšแƒ”แƒ•แƒ— Content-Type-แƒก, แƒ•แƒแƒซแƒšแƒ”แƒ•แƒ— JSON-แƒก.

แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ”: แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒ  แƒกแƒฃแƒ แƒก JSON-แƒ˜แƒก แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ. แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒแƒ•แƒ˜แƒ–แƒ˜แƒ“แƒแƒ— แƒคแƒ แƒแƒœแƒข-แƒ”แƒœแƒ“แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ. แƒ“แƒ SEO แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ˜แƒขแƒงแƒ•แƒ˜แƒแƒœ, แƒ แƒแƒ› แƒ—แƒฃ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒกแƒฃแƒ แƒแƒ—แƒ”แƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ. แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒก แƒ›แƒ˜แƒ•แƒชแƒ”แƒ›แƒ—, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒขแƒงแƒ•แƒ˜แƒแƒœ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ  แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒ”แƒœ.

แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒแƒ›แƒแƒ–แƒ”? แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒ›แƒ˜แƒ•แƒชแƒ”แƒ›แƒ— HTML-แƒก. แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก comme il faut, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒ˜. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ lua-resty-template.

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒšแƒ‘แƒแƒ— แƒ’แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒกแƒแƒ›แƒ˜ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ แƒแƒกแƒ OPM. OpenResty-แƒก แƒ’แƒแƒแƒฉแƒœแƒ˜แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜, แƒ™แƒ”แƒ แƒซแƒแƒ“, lua-resty-template. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜แƒก แƒซแƒ แƒแƒ•แƒ, Django แƒจแƒแƒ‘แƒšแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜. แƒ˜แƒฅ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ.

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒฆแƒ”แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒขแƒแƒœแƒ”แƒ— แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜, แƒ˜แƒกแƒ”แƒ• แƒแƒ  แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜. แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒ˜แƒ, แƒ›แƒแƒœ แƒ›แƒ˜แƒ˜แƒฆแƒ แƒ™แƒแƒขแƒ”แƒ‘แƒ˜. แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ•แƒแƒคแƒแƒ แƒ—แƒแƒ•แƒ”แƒ—, แƒ›แƒแƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒ˜แƒ˜แƒฆแƒ แƒ‘แƒ”แƒฌแƒ•แƒ˜แƒก แƒ‘แƒ”แƒญแƒ”แƒ“แƒ˜ แƒ™แƒœแƒฃแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ˜แƒชแƒ˜, แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒแƒ›แƒแƒก แƒ”แƒซแƒ”แƒ‘แƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฎแƒแƒ•แƒœแƒ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ•แƒ”แƒ  แƒฉแƒแƒ›แƒแƒแƒงแƒแƒšแƒ˜แƒ‘แƒ.

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ แƒ•แƒแƒ แƒ— แƒ“แƒ แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒแƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก NGINX แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก OpenResty แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒ—:

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ”แƒขแƒแƒžแƒ˜ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ˜แƒฎแƒแƒ แƒ—, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒฎแƒšแƒแƒฎแƒแƒœ แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒก แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒ”แƒ— แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒ—, IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒ— แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ’แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒแƒ—, แƒ—แƒฃ แƒแƒ  แƒ›แƒแƒ’แƒ•แƒฌแƒแƒœแƒก. แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒœ แƒ—แƒฃ แƒ‘แƒ”แƒ•แƒ  แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—, แƒแƒ› แƒคแƒแƒ–แƒแƒจแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒ’แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ.
  • แƒฎแƒ”แƒšแƒ›แƒ”แƒแƒ แƒ”. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒก.
  • แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ™แƒแƒœแƒขแƒ”แƒœแƒขแƒก แƒ•แƒแƒฌแƒ•แƒ“แƒ˜แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก.
  • แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ•แƒšแƒ˜แƒ— แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ”แƒ‘แƒก. แƒ—แƒฃ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— proxy_pass, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒฌแƒ”แƒ แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒแƒ›แƒ“แƒ”.
  • แƒกแƒฎแƒ”แƒฃแƒšแƒ˜แƒก แƒคแƒ˜แƒšแƒขแƒ แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒชแƒ•แƒแƒšแƒแƒ— แƒกแƒฎแƒ”แƒฃแƒšแƒ˜.
  • แƒจแƒ”แƒกแƒ•แƒšแƒ - แƒฎแƒ”-แƒขแƒงแƒ”. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒ˜ elasticsearch-แƒจแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒ”แƒœแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— location, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ แƒ” แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ”แƒ— แƒ“แƒ แƒ˜แƒฅ แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ™แƒแƒ“แƒ˜:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ—แƒฃ แƒแƒ แƒ แƒฅแƒฃแƒฅแƒ˜-แƒขแƒแƒ™แƒ”แƒœแƒ˜. แƒ—แƒฃ แƒแƒ แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ•แƒ˜แƒ—แƒฎแƒแƒ•แƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒชแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒแƒœ แƒ“แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒœ, แƒ แƒแƒ› แƒ›แƒแƒ— แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒœ แƒฅแƒฃแƒฅแƒ˜-แƒขแƒแƒ™แƒ”แƒœแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒฉแƒแƒ•แƒ“แƒ”แƒ‘แƒ— แƒ›แƒแƒก Redis-แƒจแƒ˜:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

Redis-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ“แƒ แƒแƒ แƒแƒคแƒ แƒ˜แƒ— แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒ แƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ/แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜, แƒแƒฅ แƒ“แƒ แƒ˜แƒฅ, แƒแƒ  แƒ˜แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฌแƒ”แƒ แƒ— แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš แƒ™แƒแƒ“แƒก, แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒšแƒแƒ“. แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ’แƒ”แƒ•แƒ”แƒœแƒขแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜.

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ—แƒแƒ•แƒแƒ“:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒ‘แƒแƒ‘แƒ—, แƒ แƒแƒ› แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— POST แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก แƒ“แƒ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒกแƒ•แƒšแƒ แƒ“แƒ แƒžแƒแƒ แƒแƒšแƒ˜ แƒกแƒฌแƒแƒ แƒ˜แƒ. แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ˜แƒฌแƒ•แƒ”แƒ•แƒ— แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ“แƒ แƒ—แƒฃ แƒกแƒฌแƒแƒ แƒ˜แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒŸแƒ”แƒขแƒแƒœแƒ˜ Redis-แƒจแƒ˜:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒฅแƒฃแƒฅแƒ˜-แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ”แƒก แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒแƒ  แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜:

OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒกแƒžแƒ”แƒ™แƒฃแƒšแƒแƒชแƒ˜แƒฃแƒ แƒ˜แƒ. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒแƒšแƒฎแƒก แƒ™แƒแƒขแƒ”แƒ‘แƒก แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ˜แƒœ แƒ’แƒ•แƒ˜แƒชแƒœแƒแƒ‘แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜.

  • แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒ˜แƒกแƒขแƒฃแƒ แƒ˜ แƒฃแƒ™แƒแƒœแƒ แƒœแƒแƒฌแƒ˜แƒšแƒ˜. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒชแƒ˜แƒ แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒ แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒจแƒ˜: แƒกแƒแƒ“แƒฆแƒแƒช แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ•แƒกแƒ•แƒแƒ— แƒ—แƒแƒ แƒ˜แƒฆแƒ˜, แƒกแƒแƒ“แƒฆแƒแƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒแƒ— แƒกแƒ˜แƒ, แƒ•แƒ—แƒฅแƒ•แƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒแƒ˜แƒขแƒ–แƒ” แƒแƒฎแƒšแƒ, แƒ“แƒแƒฃแƒ แƒ—แƒแƒ— แƒ›แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒšแƒ˜ แƒแƒœ แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ. แƒ แƒแƒฆแƒแƒช แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒžแƒแƒขแƒแƒ แƒ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ. แƒ”แƒก แƒ’แƒแƒฎแƒ“แƒ˜แƒก แƒ›แƒแƒก แƒกแƒฌแƒ แƒแƒค, แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒ“แƒ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒแƒ“.
  • แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ แƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ’แƒ•แƒกแƒฃแƒ แƒก แƒ แƒ”แƒ™แƒšแƒแƒ›แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ–แƒ” แƒ“แƒ แƒแƒ› แƒ แƒ”แƒ™แƒšแƒแƒ›แƒแƒก แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— API แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒแƒฅ แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒ”แƒฅแƒ”แƒœแƒ“แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ™แƒ•แƒ” แƒ–แƒ˜แƒก แƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒฆแƒแƒ— แƒ“แƒ แƒจแƒ”แƒแƒ’แƒ แƒแƒ•แƒแƒ— แƒแƒฅ. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ•แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒแƒ— แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ JS แƒแƒœ, แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ—, แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒ“แƒ แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ“แƒแƒ•แƒแƒ›แƒฃแƒจแƒแƒแƒ— แƒ แƒแƒฆแƒแƒช, แƒกแƒแƒœแƒแƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒ›แƒ˜แƒ•แƒชแƒ”แƒ›แƒ—.
  • แƒคแƒแƒกแƒแƒ“แƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ”แƒกแƒ”แƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ แƒ’แƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒ, แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”. แƒ›แƒแƒœแƒแƒ›แƒ“แƒ” แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜ แƒขแƒ”แƒœแƒ–แƒแƒ แƒจแƒ˜, แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒฌแƒ”แƒ•แƒ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒš แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ’แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒฌแƒ•แƒ“แƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ’แƒ”แƒ‘แƒแƒก แƒฅแƒ•แƒ”แƒงแƒœแƒ˜แƒก แƒ˜แƒฃแƒ แƒ˜แƒ“แƒ˜แƒฃแƒšแƒ˜ แƒžแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒœแƒแƒฎแƒ”แƒ•แƒแƒ แƒก. แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ˜แƒฅ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒแƒ› แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜แƒ—: แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒ.
    OpenResty แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ–แƒ” แƒ”แƒ แƒ—แƒ˜แƒแƒœ แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก แƒ“แƒ แƒ”แƒ แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒแƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ— Node.js แƒแƒฅ, PHP แƒแƒฅ, แƒžแƒ˜แƒ—แƒแƒœแƒ˜ แƒแƒฅ, แƒ แƒแƒฆแƒแƒช Erlang แƒแƒฅ, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ  แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ. แƒแƒ›แƒ˜แƒขแƒแƒ›, OpenResty แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ”แƒ แƒ—แƒแƒก แƒฌแƒ˜แƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก.

  • แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ แƒ“แƒ แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ. แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•, NGINX แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒ—แƒแƒœ แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ“แƒ˜แƒก แƒ›แƒแƒกแƒจแƒ˜. แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒแƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒแƒ— แƒ แƒแƒฆแƒแƒช แƒ“แƒ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒกแƒแƒ“แƒ›แƒ”, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Elasticsearch, Logstash, แƒแƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฉแƒแƒฌแƒ”แƒ แƒแƒ— แƒŸแƒฃแƒ แƒœแƒแƒšแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ— แƒกแƒแƒ“แƒ›แƒ”.
  • แƒ›แƒ แƒแƒ•แƒแƒš แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒœแƒšแƒแƒ˜แƒœ แƒ—แƒแƒ›แƒแƒจแƒ”แƒ‘แƒ˜แƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒ“แƒฆแƒ”แƒก แƒ™แƒ”แƒ˜แƒžแƒขแƒแƒฃแƒœแƒจแƒ˜, แƒแƒšแƒ”แƒฅแƒกแƒแƒœแƒ“แƒ แƒ” แƒ’แƒšแƒแƒ“แƒ˜แƒจแƒ˜ แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒแƒแƒฌแƒงแƒแƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ›แƒแƒ—แƒแƒ›แƒแƒจแƒ˜แƒแƒœแƒ˜ แƒ—แƒแƒ›แƒแƒจแƒ˜ OpenResty-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.
  • แƒคแƒ˜แƒšแƒขแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ (WAF). แƒ“แƒฆแƒ”แƒกแƒ“แƒฆแƒ”แƒแƒ‘แƒ˜แƒ— แƒ›แƒแƒ“แƒฃแƒ แƒ˜แƒ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ˜แƒก แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒ”แƒ˜แƒ”แƒ แƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ; แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜. OpenResty-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ‘แƒฃแƒฎแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ แƒแƒ•แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— Python, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒแƒ› PHP แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒจแƒ˜ แƒ˜แƒœแƒ”แƒฅแƒชแƒ˜แƒ, แƒ—แƒฃ, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ  แƒ“แƒแƒแƒกแƒฎแƒ˜แƒ— แƒ›แƒแƒก แƒกแƒแƒ“แƒ›แƒ” แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒ“แƒแƒœ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒ’แƒแƒฅแƒ•แƒ— MySQL แƒ“แƒ Python. แƒแƒšแƒ‘แƒแƒ—, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ”แƒชแƒแƒ“แƒแƒœ แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒœ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒแƒ˜แƒ›แƒ”แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜. แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒ แƒ˜แƒแƒคแƒแƒ“ แƒ’แƒแƒคแƒ˜แƒšแƒขแƒ แƒแƒ— แƒฃแƒชแƒœแƒแƒฃแƒ แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฌแƒ˜แƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก.
  • แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ OpenResty แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ NGINX-แƒ–แƒ”, แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ‘แƒแƒœแƒฃแƒกแƒ˜: NGINX แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ. แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜แƒ แƒ“แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒšแƒ˜แƒ“แƒฃแƒ แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ’แƒ”แƒฅแƒœแƒ”แƒ‘แƒแƒ—, แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ“แƒแƒญแƒ แƒ˜แƒšแƒ˜แƒ NGINX แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ .

    แƒšแƒฃแƒแƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜. แƒ’แƒฃแƒจแƒ˜แƒœ HighLoad++ แƒขแƒ แƒ”แƒœแƒ˜แƒœแƒ’แƒ–แƒ” แƒ›แƒ˜แƒกแƒฃแƒš แƒ‘แƒ˜แƒญแƒ”แƒ‘แƒก แƒ•แƒ”แƒšแƒแƒžแƒแƒ แƒแƒ™แƒ” แƒ“แƒ แƒ’แƒแƒ•แƒ˜แƒ’แƒ”, แƒ แƒแƒ› แƒšแƒฃแƒแƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ Tarantool แƒ”แƒฌแƒ”แƒ แƒ. แƒ”แƒก แƒแƒกแƒ” แƒแƒ  แƒแƒ แƒ˜แƒก, แƒšแƒฃแƒแƒจแƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ แƒแƒ› แƒฌแƒ”แƒ แƒ˜แƒ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜: OpenResty, Prosody XMPP แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, Love2D แƒ—แƒแƒ›แƒแƒจแƒ˜แƒก แƒซแƒ แƒแƒ•แƒ, Lua แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ Warcraft-แƒจแƒ˜ แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ’แƒแƒœ. แƒšแƒฃแƒแƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜แƒ, แƒ›แƒแƒ— แƒแƒฅแƒ•แƒ— แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ. แƒฉแƒ”แƒ›แƒ˜ แƒšแƒฃแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒแƒ—แƒจแƒ˜ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ“แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒฌแƒ”แƒ แƒ— แƒ“แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒกแƒ˜แƒแƒก, แƒคแƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒฃแƒ—แƒจแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜, แƒกแƒแƒ“แƒแƒช แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒ แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ , แƒ แƒ แƒแƒ แƒ˜แƒก แƒ แƒ. แฒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ. แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒ”แƒ—แƒ˜แƒšแƒ˜, แƒกแƒฃแƒšแƒ˜แƒ”แƒ แƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ แƒแƒ  แƒแƒ แƒ˜แƒก.
    แƒแƒ แƒ˜แƒก GitHub OpenResty-แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒฎแƒกแƒœแƒแƒ— แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜, แƒ—แƒฃ แƒ แƒแƒ›แƒ” แƒ’แƒแƒขแƒ”แƒฎแƒ˜แƒšแƒ˜แƒ. Google Groups-แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒแƒคแƒแƒกแƒขแƒ แƒกแƒ˜แƒ, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜, แƒแƒ แƒ˜แƒก แƒกแƒแƒคแƒแƒกแƒขแƒ แƒกแƒ˜แƒ แƒฉแƒ˜แƒœแƒฃแƒ  แƒ”แƒœแƒแƒ–แƒ” - แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒ˜แƒชแƒ˜แƒ—, แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒ˜แƒœแƒ’แƒšแƒ˜แƒกแƒฃแƒ แƒแƒ“ แƒแƒ  แƒšแƒแƒžแƒแƒ แƒแƒ™แƒแƒ‘แƒ“แƒ”แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒชแƒ˜แƒ— แƒฉแƒ˜แƒœแƒฃแƒ แƒ˜.

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜

  • แƒ•แƒ˜แƒ›แƒ”แƒ“แƒแƒ•แƒœแƒ”แƒ‘, แƒ แƒแƒ› แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒ’แƒแƒ“แƒ›แƒแƒ’แƒชแƒ”แƒ—, แƒ แƒแƒ› OpenResty แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฉแƒแƒ แƒฉแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ•แƒ”แƒ‘แƒ–แƒ”.
  • แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ‘แƒแƒ แƒ˜แƒ”แƒ แƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ™แƒแƒ“แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜แƒ แƒ แƒแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ”แƒ แƒ—, แƒ”แƒœแƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ“แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒ˜แƒกแƒขแƒฃแƒ แƒ˜แƒ.
  • แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒแƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒฃแƒš I/O-แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ แƒแƒ˜แƒ›แƒ” noodles, แƒ แƒแƒ’แƒแƒ แƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ–แƒแƒ’แƒฏแƒ”แƒ  NodeJS-แƒจแƒ˜ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒแƒ—.
  • แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ NGINX แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒ— แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜แƒ— แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ•.
  • แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ.

แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒ›แƒ˜แƒ—แƒฅแƒ•แƒแƒ›แƒก, แƒ แƒแƒ’แƒแƒ  แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ, แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒ แƒซแƒ”แƒšแƒ˜ แƒแƒ›แƒ‘แƒแƒ•แƒ˜ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ.

แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ!


แƒ•แƒšแƒแƒ“แƒ˜แƒ›แƒ”แƒ  แƒžแƒ แƒแƒขแƒแƒกแƒแƒ•แƒ˜ - OpenResty: NGINX-แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒฅแƒชแƒ”แƒ•แƒ

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ