āĻāĻŽāϰāĻž āϏāĻŽā§āĻŽā§āϞāύ āĻĨā§āĻā§ āĻĒā§āϰāϤāĻŋāĻŦā§āĻĻāύā§āϰ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻŋ 2016, āϝāĻž āĻāϤ āĻŦāĻāϰā§āϰ 7-8 āύāĻā§āĻŽā§āĻŦāϰ āĻŽāϏā§āĻā§āϰ āĻāĻžāĻā§ āϏā§āĻāϞāĻā§āĻā§āϤ⧠āĻ
āύā§āώā§āĻ āĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ OpenResty āĻāĻŦāĻ Lua āĻāϰ āϏāĻžāĻĨā§ NGINX āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āĻŦāϞā§āĨ¤
āĻšā§āϝāĻžāϞ⧠āϏāĻŦāĻžāĻ, āĻāĻŽāĻžāϰ āύāĻžāĻŽ āĻā§āϞāĻžāĻĻāĻŋāĻŽāĻŋāϰ āĻĒā§āϰā§āĻāĻžāϏāĻ, āĻāĻŽāĻŋ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻāύā§āϝ āĻāĻžāĻ āĻāϰāĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāĻŽāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻā§ āĻŦāϞāĻŦ. āĻāĻŽāĻŋ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻāĻŽāĻžāϰ āĻā§āĻŦāύā§āϰ āϤāĻŋāύ āĻāϤā§āϰā§āĻĨāĻžāĻāĻļ āĻŦā§āϝāϝāĻŧ āĻāϰāĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻā§āώāϰāĻŋāĻ āĻ āϰā§āĻĨā§ āĻŽā§āϞ āĻĨā§āĻā§ āĻāĻāĻāύ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰ āĻšāϝāĻŧā§āĻāĻŋ: āĻāĻŽāĻŋ āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ āĻāĻŽāĻžāϰ āϏā§āĻŦāĻĒā§āύ⧠āĻā§āĻĄ āĻĻā§āĻāĻŋāĨ¤ āĻā§āĻŦāύā§āϰ āĻāĻ āĻāϤā§āϰā§āĻĨāĻžāĻāĻļ āĻšāϞ āĻļāĻŋāϞā§āĻĒ āĻāύā§āύāϝāĻŧāύ, āĻā§āĻĄ āϞā§āĻāĻž āϝāĻž āϏāϰāĻžāϏāϰāĻŋ āĻā§āĻĒāĻžāĻĻāύ⧠āϝāĻžāϝāĻŧāĨ¤ āĻā§āĻĄ āϝāĻž āĻāĻĒāύāĻžāϰ āĻŽāϧā§āϝ⧠āĻā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŋāύā§āϤ⧠āĻāĻžāύā§āύ āύāĻžāĨ¤
āĻāĻāĻž āĻāϤāĻāĻž āĻāĻžāϰāĻžāĻĒ āĻāĻŋāϞ āϤāĻž āĻāĻžāύāĻžāϤā§āĨ¤ āϝāĻāύ āĻāĻŽāĻŋ āĻāĻāĻā§ āĻā§āύāĻŋāϝāĻŧāϰ āĻāĻŋāϞāĻžāĻŽ, āϤāĻāύ āĻāĻŽāĻŋ āĻāϏā§āĻāĻŋāϞāĻžāĻŽ āĻāĻŦāĻ āϤāĻžāϰāĻž āĻāĻŽāĻžāĻā§ āĻāĻ āĻĻā§āĻāĻŋ āĻā§āϰāĻžāĻŦāĻžāĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĻāĻŋāϝāĻŧā§āĻā§āĨ¤ āĻāĻāĻž āĻāĻāύ āϏāĻŦāĻžāϰ āĻšāĻžāĻāϞā§āĻĄā§āϰ āĻāύā§āϝ āĻāĻāĻžāύā§āĨ¤ āĻāĻŽāĻŋ āĻāύāĻĢāĻžāϰā§āύā§āϏ⧠āĻāĻŋāϝāĻŧā§ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰāϞāĻžāĻŽ: "āĻŦāύā§āϧā§āϰāĻž, āĻāĻŽāĻžāĻā§ āĻŦāϞā§āύ, āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻŋ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻāĻā§, āϏāĻŦāĻāĻŋāĻā§ āĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ? āĻāĻĒāύāĻŋ āϏā§āĻāĻžāύ⧠āĻāϤ āĻāĻžāĻāĻāĻŋ āĻāĻā§? āϤāĻžāϰāĻž āĻāĻŽāĻžāĻā§ āĻāϤā§āϤāϰ āĻĻāĻŋāϞ: "āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ 100 āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻāĻā§!" āĻāĻŽāĻŋ āĻŦāϞāϞāĻžāĻŽ: "āĻā§āϞ, 100 āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ!" āĻāĻŦāĻ āĻāĻŽāĻŋ āύāĻŋāĻā§āĻā§ āϏā§āύā§āĻĻāϰāĻāĻžāĻŦā§ āĻā§āĻā§ āĻŽā§āĻ āϏāĻāϰāĻā§āώāĻŖ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŋāύā§āϤāĻž. āĻāĻĒāύāĻŋ āĻŽāύ⧠āĻāϰā§āύ, āĻšā§āϝāĻžāĻ, āĻā§āϞā§āϰāĻž āĻĻā§āϰā§āĻĻāĻžāύā§āϤ, āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻĒāύāĻŋ āĻĢāĻŋāϰ⧠āĻāϏā§āύ āĻāĻŦāĻ āĻāĻ āĻŽāĻžāϞā§āĻāĻŋ-āĻā§āϰāĻžāĻŦāĻžāĻāĻ āĻĄā§āĻāĻžāĻŦā§āϏāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻŋāĻā§āĻāĻžāϰ āĻāϰā§āύāĨ¤ āĻāϰ āĻāĻ āĻšāĻā§āĻā§ āĻā§āύāĻŋāϝāĻŧāϰāĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻž āĻāĻŋ āĻāĻāĻāĻŋ āĻšāĻŋāĻ āĻāϞā§āĻĒāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ?
āĻāĻŽāĻŋ 20 āĻāĻŋāϰāĻ āĻŦā§āĻļāĻŋ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻž āĻāĻžāύāĻŋāĨ¤ āĻāĻžāĻ āĻāϞāĻžāĻāĻžāϞā§āύ āĻāĻŽāĻžāĻā§ āĻāĻāĻŋāĻ āĻŦā§āϰ āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϤāĻžāϰāĻž āĻāĻĒāύāĻžāĻā§ āĻāϰāϞā§āϝāĻžāĻ-āĻ, āϏāĻŋ-āϤā§, āϏāĻŋ++-āĻ, āϞā§āϝāĻŧāĻž-āϤā§, āĻĒāĻžāĻāĻĨāύā§, āϰā§āĻŦāĻŋ-āϤā§, āĻ
āύā§āϝ āĻāĻŋāĻā§āϤ⧠āĻā§āĻĄ āĻĻā§āϝāĻŧ āĻāĻŦāĻ āĻāĻĒāύāĻžāĻā§ āϏāĻŦāĻ āĻāĻžāĻāϤ⧠āĻšāĻŦā§āĨ¤ āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻŋāϞ. āϏāĻ āĻŋāĻ āϏāĻāĻā§āϝāĻž āĻāĻŖāύāĻž āĻāϰāĻž āϏāĻŽā§āĻāĻŦ āĻšāϝāĻŧāύāĻŋ, āϤāĻŦā§ āĻā§āĻĨāĻžāĻ 20 āĻāϰ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āϏāĻāĻā§āϝāĻžāĻāĻŋ āĻšāĻžāϰāĻŋāϝāĻŧā§ āĻā§āĻā§āĨ¤
āϝā§āĻšā§āϤ⧠āĻāĻāĻžāύ⧠āϏāĻŦāĻžāĻ āĻāĻžāύ⧠āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ āĻā§ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻā§ āĻāϰāĻŋ, āϤāĻžāĻ āĻāĻŽāϰāĻž āĻāϤāĻāĻž āĻļāĻžāύā§āϤ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻā§ āĻāϰāĻŋ āϤāĻž āύāĻŋāϝāĻŧā§ āĻāĻŽāĻŋ āĻāĻĨāĻž āĻŦāϞāĻŦ āύāĻžāĨ¤ āĻāĻŽāĻŋ āĻļā§āϧ⧠āĻāĻĒāύāĻžāĻā§ āĻŦāϞāĻŦ āϝ⧠āϏāĻžāϰāĻž āĻŦāĻŋāĻļā§āĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ 13āĻāĻŋ āĻ
āĻĢāĻŋāϏ āĻāĻā§, 300 āĻāĻŋāϰāĻ āĻŦā§āĻļāĻŋ āĻāϰā§āĻŽāĻāĻžāϰā§, āĻŽāϏā§āĻā§, āϤāĻžāϞāĻŋāύ āĻāĻŦāĻ āĻŽāĻžāϞā§āĻāĻžāϝāĻŧ āĻāύā§āύāϝāĻŧāύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻžāύ, āĻāĻĒāύāĻŋ āĻŽāĻžāϞā§āĻāĻž āύāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻĻāĻŋ āĻļā§āϤāĻāĻžāϞ⧠āĻ āĻžāύā§āĻĄāĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻĒāĻŋāĻ āĻāϰāĻŽ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧāĨ¤
āĻŦāĻŋāĻļā§āώāϤ, āĻāĻŽāĻžāĻĻā§āϰ āĻŦāĻŋāĻāĻžāĻ āĻĒāĻžāĻāĻĨāύ 2-āĻ āϞāĻŋāĻā§āĻā§āĨ¤ āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāϏāĻž āĻāϰāĻāĻŋ āĻāĻŦāĻ āĻĢā§āϝāĻžāĻļāύā§āĻŦāϞ āĻĒā§āϰāϝā§āĻā§āϤāĻŋ āĻĒā§āϰāĻŦāϰā§āϤāύā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āϏāĻŽāϝāĻŧ āύā§āĻ, āϤāĻžāĻ āĻāĻŽāϰāĻž āĻā§āώāϤāĻŋāĻā§āϰāϏā§āϤ āĻšāĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āϝāĻžāĻā§āĻā§ āĻāĻā§, āĻāĻžāϰāĻŖ āĻāϤ⧠āϏāĻŦāĻāĻŋāĻā§ āĻāĻā§, āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋ āĻāĻŦāĻ āϤāĻž āĻĢā§āϞ⧠āĻĻāĻŋāϝāĻŧā§āĻāĻŋāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ MySQL, Redis āĻāĻŦāĻ NGINXāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻ āύā§āĻ āĻ āύā§āϝāĻžāύā§āϝ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻāĻŋāύāĻŋāϏ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻŽāĻā§āĻā§āĻĄāĻŋāĻŦāĻŋ āĻāĻā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāϰāĻĒāĻžāĻļā§ āĻāϰāĻā§āĻļ āĻāĻā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻāĻŋāĻā§āĻ āύā§āĻ - āϤāĻŦā§ āĻāĻāĻŋ āĻāĻŽāĻžāϰ āύāϝāĻŧ, āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻāϰāĻŋ āύāĻžāĨ¤
āĻāĻĒā§āύāϰā§āϏā§āĻāĻŋ
āύāĻŋāĻā§āϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāϞāϞāĻžāĻŽāĨ¤ āĻāϞā§āύ āĻĻā§āĻāĻŋ āĻāĻ āĻāĻŽāĻŋ āĻāĻŋ āύāĻŋāϝāĻŧā§ āĻāĻĨāĻž āĻŦāϞāϤ⧠āϝāĻžāĻā§āĻāĻŋāĻ
- OpenResty āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋ āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻāϝāĻŧāĻž āĻšāϝāĻŧ?
- āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻĒāĻžāĻāĻĨāύ, āύā§āĻĄāĻā§āĻāϏ, āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ, āĻā§ āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻāĻŋāύāĻŋāϏ āĻĨāĻžāĻāĻž āĻ āĻŦāϏā§āĻĨāĻžāϝāĻŧ āĻā§āύ āĻāĻžāĻāĻžāĻāĻŋ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻĻā§āĻāĻžāĻŦāύ āĻāϰāĻž āϝāĻžāϝāĻŧ āϝāĻž āύāĻŋāϝāĻŧā§ āϏāĻŦāĻžāĻ āĻā§āĻļāĻŋ?
- āĻāĻŦāĻ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦ āĻā§āĻŦāύā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĨ¤ āĻāĻŽāĻžāĻā§ āĻĒā§āϰāϤāĻŋāĻŦā§āĻĻāύāĻāĻŋ āĻ āύā§āĻ āĻāĻŽ āĻāϰāϤ⧠āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻāĻžāϰāĻŖ āĻāĻŽāĻŋ āĻāĻāĻŋ 3,5 āĻāύā§āĻāĻž āĻĒā§āϝāĻŧā§āĻāĻŋ, āϤāĻžāĻ āĻāϝāĻŧā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĨāĻžāĻāĻŦā§āĨ¤
OpenResty āĻšāϞ NGINXāĨ¤ āϤāĻžāĻā§ āϧāύā§āϝāĻŦāĻžāĻĻ, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻĒā§āϰā§āĻŖāĻžāĻā§āĻ āĻāϝāĻŧā§āĻŦ āϏāĻžāϰā§āĻāĻžāϰ āϰāϝāĻŧā§āĻā§, āϝāĻž āĻāĻžāϞ āϞā§āĻāĻž, āĻāĻāĻŋ āĻĻā§āϰā§āϤ āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻŽāĻŋ āĻŽāύ⧠āĻāϰāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻ āϧāĻŋāĻāĻžāĻāĻļāĻ āĻā§āĻĒāĻžāĻĻāύ⧠NGINX āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻĒāύāĻŋ āϏāĻāϞā§āĻ āĻāĻžāύā§āύ āϝ⧠āϤāĻŋāύāĻŋ āĻĻā§āϰā§āϤ āĻāĻŦāĻ āĻļāĻžāύā§āϤāĨ¤ āϤāĻžāϰāĻž āĻāϤ⧠āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏ I/O āϤā§āϰāĻŋ āĻāϰā§āĻā§, āϤāĻžāĻ āĻĒāĻžāĻāĻĨāύ⧠āĻā§āĻā§āύā§āĻ āϝā§āĻāĻžāĻŦā§ āϏāĻžāĻāĻā§āϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϏā§āĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŋāĻā§ āϏāĻžāĻāĻā§āϞ āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤ Gevent āĻāĻŽā§āĻāĻžāϰ, āĻĻā§āϰā§āĻĻāĻžāύā§āϤ, āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻŋ-āĻā§āĻĄ āϞā§āĻā§āύ āĻāĻŦāĻ āĻāĻŋāĻā§āύā§āĻā§āϰ āϏāĻžāĻĨā§ āĻāĻŋāĻā§ āĻā§āϞ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāĻāϞ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§āύāĨ¤ āĻāĻŽāĻžāϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻāĻŋāϞ: āϏā§āĻāĻžāύ⧠āĻā§ āĻā§āϞ āĻšāϝāĻŧā§āĻā§ āϤāĻž āĻŦā§āϰ āĻāϰāϤ⧠āĻĒā§āϰ⧠āĻĻā§āĻ āĻĻāĻŋāύ āϞā§āĻā§āĻā§āĨ¤ āĻā§āĻ āϝāĻĻāĻŋ āĻāĻā§ āĻāϝāĻŧā§āĻ āϏāĻĒā§āϤāĻžāĻš āĻāύāύ āύāĻž āĻāϰāϤ, āϏāĻŽāϏā§āϝāĻžāĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āϤ, āĻāύā§āĻāĻžāϰāύā§āĻā§ āϞāĻŋāĻā§, āĻāĻŦāĻ Google āĻāĻāĻŋ āĻā§āĻāĻā§ āύāĻž āĻĒāĻžāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻĒāĻžāĻāϞ āĻšāϝāĻŧā§ āϝā§āϤāĻžāĻŽāĨ¤
NGINX āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻā§āϝāĻžāĻļāĻŋāĻ āĻāĻŦāĻ āϏā§āĻā§āϝāĻžāĻāĻŋāĻ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻŽāĻžāύāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻāϰāĻž āϝāĻžāϝāĻŧ āϤāĻž āύāĻŋāϝāĻŧā§ āĻāĻĒāύāĻžāϰ āĻāĻŋāύā§āϤāĻž āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻ, āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻā§āĻĨāĻžāĻ āϧā§āϰ āύāĻž āĻšāύ, āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻā§āĻĨāĻžāĻ āĻŦāϰā§āĻŖāύāĻžāĻāĻžāϰ⧠āύāĻž āĻšāĻžāϰāĻžāύāĨ¤ Nginx āϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž āĻā§āĻŦ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ, āĻāĻĒāύāĻžāĻā§ āĻā§ āύāĻŋāϤ⧠āĻšāĻŦā§ āϤāĻž āύāĻŋāϝāĻŧā§ āĻāĻžāĻŦāϤ⧠āĻšāĻŦā§ āύāĻž - WSGI, PHP-FPM, Gunicorn, UnicornāĨ¤ Nginx āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻ ā§āϝāĻžāĻĄāĻŽāĻŋāύāĻĻā§āϰ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āϤāĻžāϰāĻž āĻāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻāĻžāύā§āĨ¤ Nginx āĻāĻāĻāĻŋ āĻāĻžāĻ āĻžāĻŽā§āĻāϤ āĻāĻĒāĻžāϝāĻŧā§ āĻ āύā§āϰā§āϧāĻā§āϞāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰā§āĨ¤ āĻāĻŽāĻŋ āĻāĻ āĻŦāĻŋāώāϝāĻŧā§ āĻāĻāĻā§ āĻĒāϰ⧠āĻāĻĨāĻž āĻŦāϞāĻŦāĨ¤ āϏāĻāĻā§āώā§āĻĒā§, āϤāĻžāϰ āĻāĻāĻāĻŋ āĻĒāϰā§āϝāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§ āϝāĻāύ āϤāĻŋāύāĻŋ āĻ āύā§āϰā§āϧāĻāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰā§āĻāĻŋāϞā§āύ, āĻāĻāύ āϤāĻŋāύāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰā§āĻāĻŋāϞā§āύ āĻāĻŦāĻ āĻāĻāύ āϤāĻŋāύāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āϏāĻžāĻŽāĻā§āϰā§āĻāĻŋ āĻĻāĻŋāϝāĻŧā§āĻāĻŋāϞā§āύāĨ¤
Nginx āĻļāĻžāύā§āϤ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻž āĻāĻā§: āĻāĻāĻŋ āĻāĻžāϏā§āĻāĻŽāĻžāĻāĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻāĻŽāύ āϏāϤā§āϤā§āĻŦā§āĻ, āĻā§āϞā§āϰāĻž āĻāύāĻĢāĻŋāĻāĻžāϰ⧠āĻ ā§āϞ⧠āĻĻā§āĻāϝāĻŧāĻž āϏāĻŽāϏā§āϤ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§āĻ āĻāĻāĻŋ āϝāĻĨā§āώā§āĻ āύāĻŽāύā§āϝāĻŧ āύāϝāĻŧāĨ¤ āĻāĻ āĻļāĻā§āϤāĻŋ āϝāĻĨā§āώā§āĻ āύāϝāĻŧāĨ¤ āĻ āϤāĻāĻŦ, Taobao āĻĨā§āĻā§ āĻŦāϞāĻāĻŋ āĻāĻ āϏāĻŽāϝāĻŧ, āĻāĻŽāĻŋ āĻĒā§āϰāĻžāϝāĻŧ āĻāĻ āĻŦāĻāϰ āĻāĻā§ āĻŽāύ⧠āĻāϰāĻŋ, āĻāĻāĻŋ āĻŽāϧā§āϝ⧠Lua āύāĻŋāϰā§āĻŽāĻŋāϤ. āϏ⧠āĻāĻŋ āĻĻā§āϝāĻŧ?
- āĻāϝāĻŧāϤāύ. āĻāĻāĻž āĻā§āĻ. LuaJIT āĻā§āĻĨāĻžāĻ 100-200 āĻāĻŋāϞā§āĻŦāĻžāĻāĻ āĻŽā§āĻŽāϰāĻŋ āĻāĻāĻžāϰāĻšā§āĻĄ āĻāĻŦāĻ āύā§āϝā§āύāϤāĻŽ āĻāϰā§āĻŽāĻā§āώāĻŽāϤāĻž āĻāĻāĻžāϰāĻšā§āĻĄ āĻĻā§āϝāĻŧāĨ¤
- āϏā§āĻĒā§āĻĄ. LuaJIT āĻĻā§āĻāĻžāώ⧠āĻ āύā§āĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠C-āĻāϰ āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ, āĻāĻŋāĻā§ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻāĻāĻŋ āĻāĻžāĻāĻžāϰ āĻāĻžāĻā§ āĻšā§āϰ⧠āϝāĻžāϝāĻŧ, āĻāĻŋāĻā§ āĻā§āώā§āϤā§āϰ⧠āĻāĻāĻŋāĻā§ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āĻāĻŋāĻā§ āϏāĻŽāϝāĻŧā§āϰ āĻāύā§āϝ, āĻāĻāĻŋ āĻļāĻŋāϞā§āĻĒā§āϰ āϰāĻžāώā§āĻā§āϰ āĻšāĻŋāϏāĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ, āϏāĻŦāĻā§āϝāĻŧā§ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ JIT āĻāĻŽā§āĻĒāĻžāĻāϞāĻžāϰāĨ¤ āĻāĻāύ āĻ āĻžāύā§āĻĄāĻž āĻŦā§āĻļā§ āĻāĻā§, āĻāĻŋāύā§āϤ⧠āϤāĻžāϰāĻž āĻā§āĻŦ āĻāĻžāϰā§, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻ V8. āĻāĻŋāĻā§ āĻā§āĻāϏ āĻāύā§āĻāĻžāϰāĻĒā§āϰā§āĻāĻžāϰ āĻāĻŦāĻ āĻāĻžāĻāĻž āĻšāĻāϏā§āĻĒāĻ āĻāĻŋāĻā§ āĻĒāϝāĻŧā§āύā§āĻā§ āĻĻā§āϰā§āϤ, āĻāĻŋāύā§āϤ⧠āĻāĻŋāĻā§ āĻĒāϝāĻŧā§āύā§āĻā§ āĻāĻāύāĻ āĻšāĻžāϰāĻžāϝāĻŧāĨ¤
- āĻļā§āĻāĻž āϏāĻšāĻ. āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻĒāĻžāϰā§āϞ āĻā§āĻĄāĻŦā§āϏ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻŦā§āĻāĻŋāĻ āύāĻž āĻāϰā§āύ āϤāĻŦā§ āĻāĻĒāύāĻŋ āĻĒāĻžāϰā§āϞ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰāĻĻā§āϰ āĻā§āĻāĻā§ āĻĒāĻžāĻŦā§āύ āύāĻžāĨ¤ āĻāĻžāϰāĻŖ āϤāĻžāϰāĻž āϏā§āĻāĻžāύ⧠āύā§āĻ, āϤāĻžāĻĻā§āϰ āϏāĻŦāĻžāĻāĻā§ āύāĻŋāϝāĻŧā§ āϝāĻžāĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ, āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻļā§āĻāĻžāύ⧠āĻĻā§āϰā§āĻ āĻāĻŦāĻ āĻāĻ āĻŋāύāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻ āύā§āϝ āĻāĻŋāĻā§āϰ āĻāύā§āϝ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰ āĻāĻžāύ āϤāĻŦā§ āϤāĻžāĻĻā§āϰ āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻļāĻŋāĻā§āώāĻŖ āĻŦāĻž āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϞā§āϝāĻŧāĻžāϰ āĻā§āώā§āϤā§āϰ⧠āϏāĻŦāĻāĻŋāĻā§āĻ āϏāĻšāĻāĨ¤ āϞā§āϝāĻŧāĻž āϤāĻŋāύ āĻĻāĻŋāύ⧠āϝā§āĻā§āύ⧠āĻā§āύāĻŋāϝāĻŧāϰ āĻļāĻŋāĻā§ āύāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻž āĻŦā§āϰ āĻāϰāϤ⧠āĻāĻŽāĻžāϰ āĻĒā§āϰāĻžāϝāĻŧ āĻĻā§āĻ āĻāĻŖā§āĻāĻž āϞā§āĻā§āĻā§āĨ¤ āĻĻā§āĻ āĻāύā§āĻāĻž āĻĒāϰā§, āĻāĻŽāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāϤā§āĻĒāĻžāĻĻāύ⧠āĻā§āĻĄ āϞāĻŋāĻāĻāĻŋāϞāĻžāĻŽāĨ¤ āĻĒā§āϰāĻžāϝāĻŧ āĻāĻ āϏāĻĒā§āϤāĻžāĻš āĻĒāϰā§, āϤāĻŋāύāĻŋ āϏāϰāĻžāϏāϰāĻŋ āĻĒā§āϰāϝā§āĻāύāĻžāϝāĻŧ āĻāĻŋāϝāĻŧā§ āĻāϞ⧠āϝāĻžāύāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻŋ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāϝāĻŧ:

āĻāĻāĻžāύ⧠āĻ
āύā§āĻ āĻāĻā§. OpenResty āϞā§āϝāĻŧāĻžāĻļ āĻāĻŦāĻ āĻāĻā§āĻāĻŋāύ āĻāĻāϝāĻŧāĻ āĻāĻāĻā§āĻā§āĻ āĻŽāĻĄāĻŋāĻāϞ āĻāĻāϤā§āϰ āĻāϰā§āĻā§āĨ¤ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϏāĻŦāĻāĻŋāĻā§ āĻĒā§āϰāϏā§āϤā§āϤ āĻāĻā§ - āϏā§āĻĨāĻžāĻĒāύ āĻāĻŦāĻ āĻāĻžāĻ.
āĻāĻĻāĻžāĻšāϰāĻŖ
āĻāĻžāύā§āϰ āĻāĻĨāĻž āϝāĻĨā§āώā§āĻ, āĻāϏā§āύ āĻā§āĻĄā§ āĻāϞ⧠āϝāĻžāĻāĨ¤ āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻā§āĻ āĻšā§āϝāĻžāϞ⧠āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ:

āĻāĻāĻžāύ⧠āĻāĻŋ? āĻāĻ āĻāĻā§āĻāĻŋāύ āĻ
āĻŦāϏā§āĻĨāĻžāύ. āĻāĻŽāϰāĻž āĻāĻŋāύā§āϤāĻž āĻāϰāĻŋ āύāĻž, āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āϰāĻžāĻāĻāĻŋāĻ āϞāĻŋāĻāĻŋ āύāĻž, āĻāĻŽāϰāĻž āĻāĻŋāĻā§ āϰā§āĻĄāĻŋāĻŽā§āĻĄ āĻā§āϰāĻšāĻŖ āĻāϰāĻŋ āύāĻž - āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ NGINX-āĻ āĻāĻā§, āĻāĻŽāϰāĻž āĻāĻžāϞ āĻāĻŦāĻ āĻ
āϞāϏāĻāĻžāĻŦā§ āĻŦāĻžāϏ āĻāϰāĻŋāĨ¤
content_by_lua_block āĻāĻāĻāĻŋ āĻŦā§āϞāĻ āϝāĻž āĻŦāϞ⧠āϝ⧠āĻāĻŽāϰāĻž āϞā§āϝāĻŧāĻž āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻžāĻŽāĻā§āϰ⧠āĻĒāϰāĻŋāĻŦā§āĻļāύ āĻāϰāĻāĻŋ⧎ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāύ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āύāĻŋāĻ remote_addr āĻāĻŦāĻ āĻāĻāĻŋ āϏā§āϞāĻŋāĻĒ string.format. āĻāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāĻ sprintf, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ Lua, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻ āĻŋāĻ. āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĻā§ āĻĻāĻŋāϝāĻŧā§ āĻĨāĻžāĻāĻŋāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻŋ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāĻŦā§:

āĻāĻŋāύā§āϤ⧠āĻŦāĻžāϏā§āϤāĻŦ āĻāĻāϤ⧠āĻĢāĻŋāϰā§āĨ¤ āĻāϤā§āĻĒāĻžāĻĻāύā§, āĻā§āĻ āĻšā§āϝāĻžāϞ⧠āĻāϝāĻŧāĻžāϰā§āϞā§āĻĄ āϏā§āĻĨāĻžāĻĒāύ āĻāϰ⧠āύāĻžāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āĻŦāĻž āĻ
āύā§āϝ āĻā§āĻĨāĻžāĻ āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻŽāϝāĻŧ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤

āĻļā§āϧ⧠āĻŦāϏ⧠āĻŦāϏ⧠āĻ
āĻĒā§āĻā§āώāĻž āĻāϰā§āĨ¤ āĻāĻāĻž āĻā§āĻŦ āĻāĻžāϞ⧠āύāĻž. āϝāĻāύ 100.000 āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāϏā§, āĻāĻāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āĻā§āĻŦ āĻāĻ āĻŋāύāĨ¤ āĻ
āϤāĻāĻŦ, āĻāϏā§āύ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻāĻāĻŋ āϏāĻšāĻ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāĻāĨ¤ āĻāĻŽāϰāĻž āĻāĻŦāĻŋ āĻā§āĻāĻāĻŦ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻŦāĻŋāĻĄāĻŧāĻžāϞāĨ¤ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻŽāϰāĻž āĻļā§āϧ⧠āĻ
āύā§āϏāύā§āϧāĻžāύ āĻāϰāĻŦ āύāĻž, āĻāĻŽāϰāĻž āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄāĻā§āϞāĻŋ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰāĻŦ āĻāĻŦāĻ, āϝāĻĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠"āĻŦāĻŋāĻĄāĻŧāĻžāϞāĻāĻžāύāĻž" āĻ
āύā§āϏāύā§āϧāĻžāύ āĻāϰā§, āĻāĻŽāϰāĻž āĻŦāĻŋāĻĄāĻŧāĻžāϞ, āĻĢā§āϞāĻĢāĻŋ āĻāϤā§āϝāĻžāĻĻāĻŋ āĻā§āĻāĻā§ āĻĒāĻžāĻŦāĨ¤ āĻĒā§āϰāĻĨāĻŽā§ āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āĻ
āύā§āϰā§āϧā§āϰ āĻĄā§āĻāĻž āĻĒā§āϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāϝāĻŧ:

āĻĻā§āĻāĻŋ āϞāĻžāĻāύ āĻāĻĒāύāĻžāĻā§ GET āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻŦāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ, āĻā§āύ⧠āĻāĻāĻŋāϞāϤāĻž āύā§āĻāĨ¤ āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻāϏāĻāĻŋāĻāĻāϞ āĻā§āϝāĻŧā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŦāĻ āĻāĻā§āϏāĻā§āύāĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāϞ āϏāĻš āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĨā§āĻā§ āĻāĻ āϤāĻĨā§āϝāĻāĻŋ āĻĒāĻžāĻāĨ¤ āϏāĻŦāĻāĻŋāĻā§ āϏāĻšāĻ. āĻāĻāĻŋ āĻāĻ āĻŽāϤ āĻĻā§āĻāĻžāϝāĻŧ:

āĻāĻŽāϰāĻž āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϏāĻāϝā§āĻ resty.mysql, āϝāĻž āĻāĻŽāϰāĻž āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻŋāĻ āĻāĻā§. āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŋāĻā§ āĻāύāϏā§āĻāϞ āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻ, āϏāĻŦāĻāĻŋāĻā§ āĻĒā§āϰāϏā§āϤā§āϤāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āϏāĻāϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ SQL āĻā§āϝā§āϝāĻŧāĻžāϰ⧠āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāϞā§āϞā§āĻ āĻāϰā§āύ:

āĻāĻāĻž āĻāĻāĻā§ āĻā§āϤāĻŋāĻāϰ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻž āĻāĻžāĻ āĻāϰā§. āĻāĻāĻžāύ⧠10 āĻšāϞ āϏā§āĻŽāĻžāĨ¤ āĻāĻŽāϰāĻž 10āĻāĻŋ āϰā§āĻāϰā§āĻĄ āĻŦā§āϰ āĻāϰāĻŋ, āĻāĻŽāϰāĻž āĻ
āϞāϏ, āĻāĻŽāϰāĻž āĻāϰāĻ āĻĻā§āĻāĻžāϤ⧠āĻāĻžāĻ āύāĻžāĨ¤ āĻāϏāĻāĻŋāĻāĻāϞ-āĻ, āĻāĻŽāĻŋ āϏā§āĻŽāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§āϞ⧠āĻā§āĻāĻŋāĨ¤
āϤāĻžāϰāĻĒāϰ āĻāĻŽāϰāĻž āϏāĻŦ āĻĒā§āϰāĻļā§āύā§āϰ āĻāύā§āϝ āĻāĻŽā§āĻ āĻā§āĻāĻā§. āĻāĻŽāϰāĻž āĻāĻāĻā§āĻā§āĻ āĻ
āύā§āϰā§āϧ āϏāĻāĻā§āϰāĻš āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ Lua āĻā§āĻŦāĻŋāϞ āĻĒā§āϰāĻŖ āĻāϰāĻŋ reqs, āĻāĻŦāĻ āĻāϰ ngx.location.capture_multi.

āĻāĻ āϏāĻŽāϏā§āϤ āĻ
āύā§āϰā§āϧāĻā§āϞāĻŋ āϏāĻŽāĻžāύā§āϤāϰāĻžāϞ⧠āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻāϤā§āϤāϰāĻā§āϞāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻĢāĻŋāϰ⧠āĻāϏā§āĨ¤ āĻāϞāĻŽāĻžāύ āϏāĻŽāϝāĻŧāĻāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āϧā§āϰ āĻāϤāĻŋāϰ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽāϝāĻŧā§āϰ āϏāĻŽāĻžāύāĨ¤ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āϏāĻŦāĻžāĻ 50 āĻŽāĻŋāϞāĻŋāϏā§āĻā§āύā§āĻĄā§āϰ āĻŽāϧā§āϝ⧠āĻĢāĻŋāϰ⧠āĻāϏāĻŋ, āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāĻāĻļāϤ āĻ
āύā§āϰā§āϧ āĻĒāĻžāĻ āĻžāĻ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž 50 āĻŽāĻŋāϞāĻŋāϏā§āĻā§āύā§āĻĄā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻĒāĻžāĻŦ⧎
āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āĻ
āϞāϏ āĻāĻŦāĻ HTTP āĻšā§āϝāĻžāύā§āĻĄāϞāĻŋāĻ āĻāĻŦāĻ āĻā§āϝāĻžāĻļāĻŋāĻ āϞāĻŋāĻāϤ⧠āĻāĻžāĻ āύāĻž, āϤāĻžāĻ āĻāĻŽāϰāĻž NGINX āĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āϏāĻŦāĻāĻŋāĻā§ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰāĻŦāĨ¤ āĻāĻĒāύāĻŋ āĻĻā§āĻā§āĻā§āύ, āĻāύā§āϝ āĻāĻāĻāĻŋ āĻ
āύā§āϰā§āϧ āĻāĻŋāϞ url/fetch, āĻāĻāĻž āĻāĻāĻžāύā§:

āĻāĻŽāϰāĻž āϏāĻšāĻ āĻāϰāĻŋ proxy_pass, āĻā§āĻĨāĻžāϝāĻŧ āĻā§āϝāĻžāĻļā§ āĻāϰāϤ⧠āĻšāĻŦā§, āĻāĻŋāĻāĻžāĻŦā§ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻāϞā§āϞā§āĻ āĻāϰā§āύ āĻāĻŦāĻ āϏāĻŦāĻāĻŋāĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻāύā§āϝ āĻāĻžāĻ āĻāϰā§āĨ¤
āϤāĻŦā§ āĻāĻāĻŋ āϝāĻĨā§āώā§āĻ āύāϝāĻŧ, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāύāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻĄā§āĻāĻž āĻĻāĻŋāϤ⧠āĻšāĻŦā§āĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āϏāĻšāĻ āϧāĻžāϰāĻŖāĻž āĻšāϞ āϏāĻŦāĻāĻŋāĻā§āĻā§ JSON-āĻ āϏāĻšāĻā§, āĻĻā§āĻāĻŋ āϞāĻžāĻāύ⧠āϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞ āĻāϰāĻžāĨ¤ āĻāĻŽāϰāĻž Content-Type āĻĻāĻŋāĻ, āĻāĻŽāϰāĻž JSON āĻĻā§āĻāĨ¤
āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻŋ āĻ āϏā§āĻŦāĻŋāϧāĻž āĻāĻā§: āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠JSON āĻĒāĻĄāĻŧāϤ⧠āĻāĻžāύ āύāĻžāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻĢā§āϰāύā§āĻ-āĻāύā§āĻĄ āĻĄā§āĻā§āϞāĻĒāĻžāϰāĻĻā§āϰ āĻāĻāϰā§āώāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻāύāĻ āĻāĻāύāĻ āĻāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽā§ āĻāĻāĻŋ āĻāϰāϤ⧠āĻĒāĻāύā§āĻĻ āĻāϰāĻŋ āύāĻžāĨ¤ āĻšā§āϝāĻžāĻ, āĻāĻŦāĻ āĻāϏāĻāĻ āĻŦāĻŋāĻļā§āώāĻā§āĻāϰāĻž āĻŦāϞāĻŦā§āύ āϝ⧠āĻāĻŽāϰāĻž āϝāĻĻāĻŋ āĻāĻŦāĻŋāĻā§āϞāĻŋ āĻā§āĻāĻāĻāĻŋ, āϤāĻŦā§ āϤāĻžāϰāĻž āĻĒāĻžāϤā§āϤāĻž āĻĻā§āϝāĻŧ āύāĻžāĨ¤ āĻāĻŦāĻ āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āϤāĻžāĻĻā§āϰ āĻāĻŋāĻā§ āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤ⧠āĻĻā§āĻ, āϤāĻžāϰāĻž āĻŦāϞāĻŦā§ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āϏāĻžāϰā§āĻ āĻāĻā§āĻāĻŋāύāĻā§āϞāĻŋ āĻāĻŋāĻā§ āϏā§āĻā§ āĻāϰ⧠āύāĻžāĨ¤
āĻāĻāĻž āύāĻŋāϝāĻŧā§ āĻāĻŋ āĻāϰāϤ⧠āĻāĻžāύ? āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ HTML āĻĻā§āĻŦāĨ¤ āĻšā§āϝāĻžāύā§āĻĄāϞāĻā§āϞāĻŋ āĻĻāĻŋāϝāĻŧā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻ āĻŋāĻ āύāϝāĻŧ, āϤāĻžāĻ āĻāĻŽāϰāĻž āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāĻ⧎ āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāĻā§ lua-resty-template.

āĻāĻĒāύāĻŋ āĻ
āĻŦāĻļā§āϝāĻ āϤāĻŋāύāĻāĻŋ āĻāϝāĻŧāĻā§āĻāϰ āĻ
āĻā§āώāϰ OPM āĻĻā§āĻā§āĻā§āύāĨ¤ OpenResty āĻāϰ āύāĻŋāĻāϏā§āĻŦ āĻĒā§āϝāĻžāĻā§āĻ āĻŽā§āϝāĻžāύā§āĻāĻžāϰ āύāĻŋāϝāĻŧā§ āĻāϏā§, āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻĒāύāĻŋ āĻŦāĻŋāĻāĻŋāύā§āύ āĻŽāĻĄāĻŋāĻāϞā§āϰ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻŦāĻŋāĻļā§āώ āĻāϰā§, lua-resty-template. āĻāĻāĻŋ āĻā§āϝāĻžāĻā§āĻā§ āĻā§āĻŽāĻĒā§āϞā§āĻā§āϰ āĻŽāϤ⧠āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻā§āĻāĻŋāύāĨ¤ āϏā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻļā§āϞ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āϏāĻŦāĻāĻŋāĻā§ āĻāĻāϰāĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§:

āĻāĻŽāϰāĻž āĻĄā§āĻāĻž āύāĻŋāϝāĻŧā§āĻāĻŋ āĻāĻŦāĻ āĻā§āĻŽāĻĒā§āϞā§āĻāĻāĻŋāĻā§ āĻāĻŦāĻžāϰ āĻĻā§āĻāĻŋ āϞāĻžāĻāύ⧠āϰā§āύā§āĻĄāĻžāϰ āĻāϰā§āĻāĻŋāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻļāĻŋ, āĻŦāĻŋāĻĄāĻŧāĻžāϞ āĻĒā§āϝāĻŧā§āĻā§āύ. āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āĻ
āύā§āϰā§āϧāĻāĻŋ āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻāϰā§āĻāĻŋ, āϤāĻŋāύāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞāĻāĻžāύāĻžāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒāĻļāĻŽ āϏā§āϞāĻ āĻĒā§āϝāĻŧā§āĻā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻāĻāύāĻ āĻāĻžāύā§āύ āύāĻž, āĻšāϝāĻŧāϤ⧠āϤāĻŋāύāĻŋ āĻāĻāĻŋ āĻā§āĻāĻāĻāĻŋāϞā§āύ, āĻāĻŋāύā§āϤ⧠āϤāĻŋāύāĻŋ āϤāĻžāϰ āĻ
āύā§āϰā§āϧāĻāĻŋ āϏāĻ āĻŋāĻāĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāύāĻŋāĨ¤
āϏāĻŦāĻāĻŋāĻā§āĻ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ, āĻāĻŋāύā§āϤ⧠āĻāĻŽāϰāĻž āĻŦāĻŋāĻāĻžāĻļā§ āĻāĻāĻŋ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻĻā§āϰ āĻāĻāύāĻ āĻĻā§āĻāĻžāϤ⧠āĻāĻžāĻ āύāĻžāĨ¤ āĻāϰ āĻāĻāĻāĻŋ āĻ āύā§āĻŽā§āĻĻāύ āĻāϰāĻž āϝāĻžāĻ. āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāϏā§āύ āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ NGINX OpenResty āĻāϰ āĻĒāϰāĻŋāĻĒā§āϰā§āĻā§āώāĻŋāϤ⧠āĻ āύā§āϰā§āϧāĻāĻŋ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰā§:
- āĻĒā§āϰāĻĨāĻŽ āĻĒāϰā§āĻŦ- āĻĒā§āϰāĻŦā§āĻļ, āϝāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻāĻāĻŽāĻžāϤā§āϰ āĻāϏā§āĻā§, āĻāĻŦāĻ āĻāĻŽāϰāĻž āϤāĻžāĻā§ āĻšā§āĻĄāĻžāϰ, IP āĻ āĻŋāĻāĻžāύāĻž, āĻ āύā§āϝāĻžāύā§āϝ āĻĄā§āĻāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻĻā§āĻā§āĻāĻŋāĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻĒāĻāύā§āĻĻ āύāĻž āĻšāϞ⧠āĻāĻĒāύāĻŋ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāĻāĻŋ āĻā§āĻā§ āĻĢā§āϞāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āĻ āύā§āĻŽā§āĻĻāύā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻ āĻĨāĻŦāĻž āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻ āύā§āĻ āĻ āύā§āϰā§āϧ āĻĒāĻžāĻ, āĻāĻŽāϰāĻž āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āϏāĻšāĻā§āĻ āϏā§āĻā§āϞāĻŋ āĻā§āĻā§ āĻĢā§āϞāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
- āĻĒā§āύāϰā§āĻŦāĻžāϰ āϞā§āĻāĻž. āĻāĻŋāĻā§ āĻ āύā§āϰā§āϧā§āϰ āĻĄā§āĻāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āϞā§āĻāĻžāĨ¤
- āĻŦāĻŋāώāϝāĻŧāĻŦāϏā§āϤā§. āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āϏāĻžāĻŽāĻā§āϰ⧠āĻĻāĻŋāĻāĨ¤
- āĻšā§āĻĄāĻžāϰ āĻĢāĻŋāϞā§āĻāĻžāϰ. āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻļāĻŋāϰā§āύāĻžāĻŽ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ. āϝāĻĻāĻŋ āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ
proxy_pass, āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāĻā§ āĻāĻŋāĻā§ āĻļāĻŋāϰā§āύāĻžāĻŽ āĻĒā§āύāϰāĻžāϝāĻŧ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ - āĻļāϰā§āϰā§āϰ āĻĢāĻŋāϞā§āĻāĻžāϰ. āĻāĻŽāϰāĻž āĻļāϰā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
- āϞāĻ āĻāύ āĻāϰā§āύ - āϞāĻāĻŋāĻ āĻāĻāĻāĻŋ āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏā§āϤāϰ āĻāĻžāĻĄāĻŧāĻž āĻāϞāĻžāϏā§āĻāĻŋāĻ āϏāĻžāϰā§āĻā§ āϞāĻ āϞā§āĻāĻž āϏāĻŽā§āĻāĻŦāĨ¤
āĻāĻŽāĻžāĻĻā§āϰ āĻ āύā§āĻŽā§āĻĻāύ āĻāĻ āĻŽāϤ āĻāĻŋāĻā§ āĻĻā§āĻāĻžāĻŦā§:

āĻāĻŽāϰāĻž āϝ⧠āĻāĻāĻŋ āϝā§āĻ āĻāϰāĻŦ location, āϝāĻž āĻāĻŽāϰāĻž āĻāĻā§ āĻŦāϰā§āĻŖāύāĻž āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻā§āĻĄāĻāĻŋ āϏā§āĻāĻžāύ⧠āϰā§āĻā§āĻāĻŋ:

āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻā§āĻāĻŋ āĻā§āĻā§āύ āĻāĻā§ āĻāĻŋāύāĻž āϤāĻž āĻĻā§āĻāϤā§. āϝāĻĻāĻŋ āύāĻž āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āĻ
āύā§āĻŽā§āĻĻāύā§āϰ āĻāĻĒāϰ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŋāĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰāĻž āϧā§āϰā§āϤ āĻāĻŦāĻ āĻ
āύā§āĻŽāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āϝ⧠āĻāĻāĻāĻŋ āĻā§āĻāĻŋ āĻā§āĻā§āύ āϏā§āĻ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ⧎ āĻ
āϤāĻāĻŦ, āĻāĻŽāϰāĻž āĻāĻāĻŋ āϰā§āĻĄāĻŋāϏā§āĻ āϰāĻžāĻāĻŦ:

āϰā§āĻĄāĻŋāϏā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻā§āĻĄāĻāĻŋ āĻā§āĻŦ āϏāĻšāĻ āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝ āĻāĻžāώāĻžāϰ āĻĨā§āĻā§ āĻāϞāĻžāĻĻāĻž āύāϝāĻŧāĨ¤ āĻāĻāĻ āϏāĻžāĻĨā§, āϏāĻŽāϏā§āϤ āĻāύāĻĒā§āĻ/āĻāĻāĻāĻĒā§āĻ, āϏā§āĻāĻžāύ⧠āĻā§ āĻāĻā§, āĻāĻāĻžāύ⧠āĻā§ āĻāĻā§, āĻāĻāĻŋ āĻŦā§āϞāĻ āĻāϰāĻā§ āύāĻžāĨ¤ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏ āĻā§āĻĄ āϞā§āĻā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻāĻŋ āĻ
ā§āϝāĻžāϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤ Gevent āϏāĻā§āĻā§ āĻŽāϤ, āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻžāϞ āĻāϰāĻž.

āĻāϏā§āύ āĻ
āύā§āĻŽā§āĻĻāύ āύāĻŋāĻā§āĻ āĻāϰāĻŋ:

āĻāĻŽāϰāĻž āĻŦāϞāĻŋ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻŦāĻĄāĻŋ āĻĒāĻĄāĻŧāϤ⧠āĻšāĻŦā§āĨ¤ āĻāĻŽāϰāĻž POST āĻāϰā§āĻā§āĻŽā§āύā§āĻ āĻĒā§āϝāĻŧā§āĻāĻŋ, āϞāĻāĻāύ āĻāĻŦāĻ āĻĒāĻžāϏāĻāϝāĻŧāĻžāϰā§āĻĄ āϏāĻ āĻŋāĻ āĻāĻŋāύāĻž āϤāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύāĨ¤ āϝāĻĻāĻŋ āĻā§āϞ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āĻ
āύā§āĻŽā§āĻĻāύā§āϰ āĻāĻĒāϰ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŋāĨ¤ āĻāĻŦāĻ āϝāĻĻāĻŋ āϤāĻžāϰāĻž āϏāĻ āĻŋāĻ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž Redis āĻ āĻā§āĻā§āύ āϞāĻŋāĻāĻŋ:

āĻā§āĻāĻŋ āϏā§āĻ āĻāϰāϤ⧠āĻā§āϞāĻŦā§āύ āύāĻž, āĻāĻāĻŋ āĻĻā§āĻāĻŋ āϞāĻžāĻāύ⧠āĻāϰāĻž āĻšāϝāĻŧ:

āĻāĻĻāĻžāĻšāϰāĻŖ āϏāĻšāĻ, āĻ
āύā§āĻŽāĻžāύāĻŽā§āϞāĻāĨ¤ āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻŽāϰāĻž āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āϤā§āϰāĻŋ āĻāϰāĻŦ āύāĻž āϝāĻž āĻŽāĻžāύā§āώāĻā§ āĻŦāĻŋāĻĄāĻŧāĻžāϞ āĻĻā§āĻāĻžāϝāĻŧāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§ āĻāĻžāύā§āĨ¤ āϤ⧠āĻāϞā§āύ āĻā§āύ⧠āύā§āĻāϝāĻŧāĻž āϝāĻžāĻ āĻā§āĻĒāĻžāĻĻāύ⧠āĻāĻŋ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
- āĻŽāĻŋāύāĻŋāĻŽāĻžāϞāĻŋāϏā§āĻ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ. āĻāĻāύāĻ āĻāĻāύāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻĄā§āĻāĻž āĻĻāĻŋāϤ⧠āĻšāĻŦā§: āĻā§āĻĨāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āϤāĻžāϰāĻŋāĻ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻšāĻŦā§, āĻā§āĻĨāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻŋāĻā§ āϧāϰāĻŖā§āϰ āϤāĻžāϞāĻŋāĻāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻšāĻŦā§, āĻāĻāύ āϏāĻžāĻāĻā§ āĻāϤāĻāύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϰāϝāĻŧā§āĻā§ āϤāĻž āĻŦāϞāϤ⧠āĻšāĻŦā§, āĻāĻāĻāĻŋ āĻāĻžāĻāύā§āĻāĻžāϰ āĻŦāĻž āĻĒāϰāĻŋāϏāĻāĻā§āϝāĻžāύ⧠āϏā§āĻā§āϰ⧠āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻāϤ āĻā§āĻ āĻāĻŋāĻā§āĨ¤ āĻāĻŋāĻā§ āύā§āϝā§āύāϤāĻŽ āĻā§āĻāϰāĻž āĻā§āĻŦ āϏāĻšāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻāĻŋ āĻĻā§āϰā§āϤ, āϏāĻšāĻ āĻāĻŦāĻ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻšāĻŦā§āĨ¤
- āĻĄā§āĻāĻž āĻĒā§āϰāĻŋāĻĒā§āϰāϏā§āϏāĻŋāĻ. āĻāĻāύāĻ āĻāĻāύāĻ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύ āĻāĻŽā§āĻŦā§āĻĄ āĻāϰāϤ⧠āĻāĻžāĻ, āĻāĻŦāĻ āĻāĻŽāϰāĻž API āĻ āύā§āϰā§āϧā§āϰ āϏāĻžāĻĨā§ āĻāĻ āĻŦāĻŋāĻā§āĻāĻžāĻĒāύāĻā§āϞāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰāĻŋāĨ¤ āĻāĻāĻŋ āĻāĻāĻžāύ⧠āĻāϰāĻž āĻā§āĻŦ āϏāĻšāĻāĨ¤ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϞā§āĻĄ āĻāϰāĻŋ āύāĻž, āϝāĻž āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻ ā§āϰ āĻĒāϰāĻŋāĻļā§āϰāĻŽ āĻāϰāĻā§āĨ¤ āĻāĻĒāύāĻŋ āĻāĻāĻžāύ⧠āύāĻŋāϤ⧠āĻāĻŦāĻ āϏāĻāĻā§āϰāĻš āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ. āĻāĻŽāϰāĻž āĻāĻŋāĻā§ JS āĻŽā§āϞā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ āĻŦāĻž āĻŦāĻŋāĻĒāϰā§āϤāĻāĻžāĻŦā§, āĻāύāϏā§āĻāĻŋāĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ, āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āĻā§ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāĻā§ āĻāĻŋāĻā§ āĻĒā§āϰāĻŋāĻĒā§āϰāϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
- āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āϏāĻŽā§āĻŽā§āĻāĻāĻžāĻ. āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻžāϞ āĻā§āϏ, āĻāĻŽāĻŋ āĻāĻāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰā§āĻāĻŋāĨ¤ āĻāϰ āĻāĻā§, āĻāĻŽāĻŋ Tenzor-āĻāϰ āĻāύā§āϝ āĻāĻžāĻ āĻāϰā§āĻāĻŋ, āĻāĻāĻāĻŋ āĻāϞā§āĻāĻā§āϰāύāĻŋāĻ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ āϝā§āĻāĻŋ āĻĻā§āĻļā§āϰ āĻĒā§āϰāĻžāϝāĻŧ āĻ
āϰā§āϧā§āĻ āĻāĻāύāĻŋ āϏāϤā§āϤāĻžāϰ āĻāύā§āϝ āϰāĻŋāĻĒā§āϰā§āĻāĻŋāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻŦāĻž āϤā§āϰāĻŋ āĻāϰā§āĻāĻŋ, āĻāĻāĻ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏā§āĻāĻžāύ⧠āĻ
āύā§āĻ āĻāĻŋāĻā§ āĻāϰāĻž āĻšāϝāĻŧ: āϰāĻžāĻāĻāĻŋāĻ, āĻ
āύā§āĻŽā§āĻĻāύ āĻāĻŦāĻ āĻāϰāĻ āĻ
āύā§āĻ āĻāĻŋāĻā§āĨ¤
āĻāĻĒā§āύāϰā§āϏā§āĻāĻŋ āĻāĻĒāύāĻžāϰ āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏā§āϰ āĻāύā§āϝ āĻāĻ āĻž āĻšāĻŋāϏāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āϏāĻŦāĻāĻŋāĻā§āϤ⧠āĻāĻāĻ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤā§āĨ¤ āϝā§āĻšā§āϤ⧠āĻŽāĻžāĻāĻā§āϰā§āϏāĻžāϰā§āĻāĻŋāϏāĻā§āϞāĻŋ āĻāĻŽāύāĻāĻžāĻŦā§ āϞā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āϝ⧠āĻāĻĒāύāĻžāϰ āĻāĻāĻžāύ⧠Node.js āĻāĻā§, āĻāĻĒāύāĻžāϰ āĻāĻāĻžāύ⧠PHP āĻāĻā§, āĻāĻĒāύāĻžāϰ āĻāĻāĻžāύ⧠Python āĻāĻā§, āĻāĻāĻžāύ⧠āĻāĻŋāĻā§ Erlang āĻāĻŋāύāĻŋāϏ āĻāĻā§, āĻāĻŽāϰāĻž āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻŋ āϝ⧠āĻāĻŽāϰāĻž āϏāĻŦ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻāĻ āĻā§āĻĄ āĻāĻŦāĻžāϰ āϞāĻŋāĻāϤ⧠āĻāĻžāĻ āύāĻžāĨ¤ āĻ āϤāĻāĻŦ, OpenResty āϏāĻžāĻŽāύā§āϰ āĻ āĻāĻļā§ āĻĒā§āϞāĻžāĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ - āĻĒāϰāĻŋāϏāĻāĻā§āϝāĻžāύ āĻāĻŦāĻ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ. āϏāĻžāϧāĻžāϰāĻŖāϤ NGINX āĻĒā§āϰāĻŦā§āĻļāĻĻā§āĻŦāĻžāϰ⧠āĻĨāĻžāĻā§ āĻāĻŦāĻ āϏāĻŽāϏā§āϤ āĻ āύā§āϰā§āϧ āĻāĻāĻŋāϰ āĻŽāϧā§āϝ āĻĻāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻāĻāĻŋ āϏāĻāĻā§āϰāĻš āĻāϰāĻž āĻā§āĻŦ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻāĨ¤ āĻāĻĒāύāĻŋ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāĻŋāĻā§ āĻāĻŖāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻāĻāĻŋ āĻā§āĻĨāĻžāĻ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻ āĻāϞāĻžāϏā§āĻāĻŋāĻāϏāĻžāϰā§āĻ, āϞāĻāϏā§āĻā§āϝāĻžāĻļ, āĻŦāĻž āĻļā§āϧ⧠āϞāĻā§ āĻāĻāĻŋ āϞāĻŋāĻā§āύ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻāĻŋ āĻā§āĻĨāĻžāĻ āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
- āĻŽāĻžāϞā§āĻāĻŋ-āĻāĻāĻāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽ. āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻ āύāϞāĻžāĻāύ āĻā§āĻŽāĻā§āϞāĻŋ āĻāϰāĻžāĻ āĻā§āĻŦ āĻāĻžāϞāĨ¤ āĻāĻ āĻā§āĻĒ āĻāĻžāĻāύ⧠āĻāϞā§āĻāĻāĻžāύā§āĻĄāĻžāϰ āĻā§āϞā§āϝāĻžāĻĄāĻŋāĻļ āĻāĻĒāύāĻžāĻā§ āĻŦāϞāĻŦā§ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒā§āύāϰā§āϏā§āĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āĻŽāĻžāϞā§āĻāĻŋāĻĒā§āϞā§āϝāĻŧāĻžāϰ āĻā§āĻŽā§āϰ āĻĒā§āϰā§āĻā§āĻāĻžāĻāĻĒ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
- āĻ āύā§āϰā§āϧ āĻĢāĻŋāϞā§āĻāĻžāϰāĻŋāĻ (WAF). āĻāĻāύ āϏāĻŦ āϧāϰāĻŖā§āϰ āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ āϤā§āϰāĻŋ āĻāϰāĻž āĻĢā§āϝāĻžāĻļāύā§āĻŦāϞ, āϏā§āĻāĻžāύ⧠āĻ āύā§āĻ āĻĒāϰāĻŋāώā§āĻŦāĻž āϰāϝāĻŧā§āĻā§ āϝāĻž āϤāĻžāĻĻā§āϰ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ OpenResty-āĻāϰ āϏāĻžāĻšāĻžāϝā§āϝā§, āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻā§ āĻāĻāĻāĻŋ āĻāϝāĻŧā§āĻŦ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻĢāĻžāϝāĻŧāĻžāϰāĻāϝāĻŧāĻžāϞ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻž āĻāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻ āύā§āϝāĻžāϝāĻŧā§ āϏāĻšāĻā§ āĻāĻŦāĻ āϏāĻšāĻā§āĻ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāĻŦā§āĨ¤ āĻāĻĒāύāĻžāϰ āϝāĻĻāĻŋ āĻĒāĻžāĻāĻĨāύ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻā§āύ āϝ⧠āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻāĻĒāύāĻžāĻā§ āĻ āĻŦāĻļā§āϝāĻ āĻāύāĻā§āĻāĻļāύ āĻĻā§āĻāϝāĻŧāĻž āĻšāĻŦā§ āύāĻž, āϝāĻĻāĻŋ āύāĻž, āĻ āĻŦāĻļā§āϝāĻ, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāύāϏā§āϞ āĻĨā§āĻā§ āϝ⧠āĻā§āύāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āϤā§āϰāĻŋ āĻāϰā§āύāĨ¤ āĻāĻĒāύāĻŋ āĻāĻžāύā§āύ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ MySQL āĻāĻŦāĻ Python āĻāĻā§āĨ¤ āϏāĻŽā§āĻāĻŦāϤ, āĻāĻāĻžāύ⧠āϤāĻžāϰāĻž āĻāĻŋāĻā§ āϧāϰāĻŖā§āϰ āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āĻā§āϰāĻžāĻāĻžāϰā§āϏāĻžāϞ āĻāϰāĻžāϰ āĻā§āώā§āĻāĻž āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ⧠āĻāĻŋāĻā§ āĻāύāĻā§āĻāĻļāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻ āϤāĻāĻŦ, āĻāĻĒāύāĻŋ āϏāĻžāĻŽāύā§āϰ āĻ āĻāĻļā§ āĻĻā§āϰā§āϤ āĻāĻŦāĻ āϏāϏā§āϤāĻžāϝāĻŧ āĻŽā§āĻ āĻ āύā§āϰā§āϧāĻā§āϞāĻŋ āĻĢāĻŋāϞā§āĻāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
- āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ. āϝā§āĻšā§āϤ⧠OpenResty NGINX-āĻāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āϤā§āϰāĻŋ, āĻāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻŦā§āύāĻžāϏ āϰāϝāĻŧā§āĻā§ - āĻāĻāĻŋ NGINX āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ. āĻāĻāĻŋ āĻ
āύā§āĻ āĻŦāĻĄāĻŧ, āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻĒā§āϰāĻĨāĻŽā§āĻ āĻ
āύā§āĻ āĻĒā§āϰāĻļā§āύā§āϰ āĻāϤā§āϤāϰ NGINX āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻĻāĻŋāϝāĻŧā§āĻā§ā§ˇ
āϞā§āϝāĻŧāĻž āĻĄā§āĻā§āϞāĻĒāĻžāϰ. āĻāϤāĻāĻžāϞ āĻāĻŽāĻŋ āĻšāĻžāĻāϞā§āĻĄ ++ āĻĒā§āϰāĻļāĻŋāĻā§āώāĻŖ āĻĻāĻŋāĻŦāϏ⧠āĻāϏāĻž āĻā§āϞā§āĻĻā§āϰ āϏāĻžāĻĨā§ āĻāĻĨāĻž āĻŦāϞā§āĻāĻŋ āĻāĻŦāĻ āĻļā§āύā§āĻāĻŋ āϝ⧠āϞā§āϝāĻŧāĻžāϤ⧠āĻā§āĻŦāϞ āĻā§āϝāĻžāϰāĻžāύā§āĻā§āϞ āϞā§āĻāĻž āĻāĻā§āĨ¤ āĻāĻŽāύ āύāϝāĻŧ, āϞā§āϝāĻŧāĻžāϝāĻŧ āĻ āύā§āĻ āĻāĻŋāĻā§ āϞā§āĻāĻž āĻāĻā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖ: OpenResty, Prosody XMPP āϏāĻžāϰā§āĻāĻžāϰ, Love2D āĻā§āĻŽ āĻāĻā§āĻāĻŋāύ, Lua āĻāϝāĻŧāĻžāϰāĻā§āϰāĻžāĻĢāĻ āĻāĻŦāĻ āĻ āύā§āϝ āĻā§āĻĨāĻžāĻ āϏā§āĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤ āĻ āύā§āĻ āϞā§āϝāĻŧāĻž āĻĄā§āĻā§āϞāĻĒāĻžāϰ āĻāĻā§, āϤāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāĻļā§āϞ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§āĨ¤ āĻāĻŽāĻžāϰ āϏāĻŽāϏā§āϤ āϞā§āϝāĻŧāĻž āĻĒā§āϰāĻļā§āύā§āϰ āĻāϝāĻŧā§āĻ āĻāύā§āĻāĻžāϰ āĻŽāϧā§āϝ⧠āĻāϤā§āϤāϰ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āĻāĻĒāύāĻŋ āϝāĻāύ āĻŽā§āϞāĻŋāĻ āϤāĻžāϞāĻŋāĻāĻžāϝāĻŧ āϞāĻŋāĻāĻŦā§āύ, āĻāĻā§āώāϰāĻŋāĻ āĻ āϰā§āĻĨā§ āĻāϝāĻŧā§āĻ āĻŽāĻŋāύāĻŋāĻā§āϰ āĻŽāϧā§āϝ⧠āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻāĻā§āĻā§āĻ āĻāϤā§āϤāϰ āϰāϝāĻŧā§āĻā§, āϤāĻžāϰāĻž āĻā§ āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§, āĻā§ āĻā§ āϤāĻž āĻŦāϰā§āĻŖāύāĻž āĻāϰā§āĨ¤ āĻāĻāĻž āĻĻāĻžāϰā§āĻŖ. āĻĻā§āϰā§āĻāĻžāĻā§āϝāĻŦāĻļāϤ, āĻāĻ āϧāϰāύā§āϰ āĻāύā§āϤāϰāĻŋāĻ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧ āϏāϰā§āĻŦāϤā§āϰ āύā§āĻāĨ¤
āĻāĻĒā§āύāϰā§āϏā§āĻāĻŋāϤ⧠āĻāĻŋāĻāĻšāĻžāĻŦ āϰāϝāĻŧā§āĻā§, āϝā§āĻāĻžāύ⧠āĻāĻŋāĻā§ āĻā§āĻā§ āĻā§āϞ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āϏāĻŽāϏā§āϝāĻž āĻā§āϞāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻā§āĻāϞ āĻā§āϰā§āĻĒā§ āĻāĻāĻāĻŋ āĻŽā§āϞāĻŋāĻ āϤāĻžāϞāĻŋāĻāĻž āϰāϝāĻŧā§āĻā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŦāĻŋāώāϝāĻŧ āύāĻŋāϝāĻŧā§ āĻāϞā§āĻāύāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āĻā§āύāĻž āĻāĻžāώāĻžāϝāĻŧ āĻāĻāĻāĻŋ āĻŽā§āĻāϞāĻŋāĻ āϤāĻžāϞāĻŋāĻāĻž āϰāϝāĻŧā§āĻā§ - āĻāĻĒāύāĻŋ āĻāĻāύāĻ āĻāĻžāύā§āύ āύāĻž, āĻšāϝāĻŧāϤ āĻāĻĒāύāĻŋ āĻāĻāϰā§āĻāĻŋ āĻŦāϞāϤ⧠āĻĒāĻžāϰā§āύ āύāĻž, āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻāĻžāĻāύāĻŋāĻ āĻā§āĻāĻžāύ āĻāĻā§āĨ¤
āĻĢāϞāĻžāĻĢāϞ
- āĻāĻŽāĻŋ āĻāĻļāĻž āĻāϰāĻŋ āĻāĻŽāĻŋ āĻŦā§āĻāĻžāϤ⧠āϏāĻā§āώāĻŽ āĻšāϝāĻŧā§āĻāĻŋ āϝ⧠āĻāĻĒā§āύāϰā§āϏā§āĻāĻŋ āĻāϝāĻŧā§āĻŦā§āϰ āĻāύā§āϝ āϤā§āϰāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻāĻžāĻ āĻžāĻŽā§āĨ¤
- āĻāĻāĻŋāϤ⧠āĻĒā§āϰāĻŦā§āĻļā§āϰ āĻāĻāĻāĻŋ āĻāĻŽ āĻĨā§āϰā§āĻļāĻšā§āϞā§āĻĄ āϰāϝāĻŧā§āĻā§, āϝā§āĻšā§āϤ⧠āĻā§āĻĄāĻāĻŋ āĻāĻŽāϰāĻž āϝāĻž āϞāĻŋāĻāĻŋ āϤāĻžāϰ āĻ āύā§āϰā§āĻĒ, āĻāĻžāώāĻžāĻāĻŋ āĻŦā§āĻļ āϏāĻšāĻ āĻāĻŦāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤāĨ¤
- āĻāĻāĻŋ āĻāϞāĻŦā§āϝāĻžāĻ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ ā§āϝāĻžāϏāĻŋāĻā§āĻā§āϰā§āύāĻžāϏ I/O āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āύā§āĻĄāϞāϏ āĻĨāĻžāĻāĻŦā§ āύāĻž āĻāĻžāϰāĻŖ āĻāĻŽāϰāĻž āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ NodeJS-āĻ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤
- āĻāĻāĻŋāϰ āĻāĻāĻāĻŋ āϏāĻšāĻ āϏā§āĻĨāĻžāĻĒāύāĻž āϰāϝāĻŧā§āĻā§, āĻāĻžāϰāĻŖ āĻāĻŽāĻžāĻĻā§āϰ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏāĻ āĻŋāĻ āĻŽāĻĄāĻŋāĻāϞ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻĄ āϏāĻš NGINX āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŦāĻ āϏāĻŦāĻāĻŋāĻā§āĻ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāĻžāĻ āĻāϰā§āĨ¤
- āĻŦāĻĄāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻžāĻļā§āϞ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧāĨ¤
āĻāĻŋāĻāĻžāĻŦā§ āϰāĻžāĻāĻāĻŋāĻ āĻāϰāĻž āĻšāϝāĻŧ āĻāĻŽāĻŋ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻŦāϞāĻŋāύāĻŋ, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĻā§āϰā§āĻ āĻāϞā§āĻĒ āĻšāϤ⧠āĻĒāϰāĻŋāĻŖāϤ.
āĻāĻĒāύāĻžāϰ āĻŽāύā§āϝā§āĻā§āϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āϧāύā§āϝāĻŦāĻžāĻĻ!

āĻāϤā§āϏ: www.habr.com
