āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§āĻĻāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻŋ
āĻšā§āĻ¯āĻžāĻ˛ā§ āĻ¸āĻŦāĻžāĻ, āĻāĻŽāĻžāĻ° āĻ¨āĻžāĻŽ āĻā§āĻ˛āĻžāĻĻāĻŋāĻŽāĻŋāĻ° āĻĒā§āĻ°ā§āĻāĻžāĻ¸āĻ, āĻāĻŽāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°āĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŽāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻā§ āĻŦāĻ˛āĻŦ. āĻāĻŽāĻŋ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻŽāĻžāĻ° āĻā§āĻŦāĻ¨ā§āĻ° āĻ¤āĻŋāĻ¨ āĻāĻ¤ā§āĻ°ā§āĻĨāĻžāĻāĻļ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻŋāĨ¤ āĻāĻŽāĻŋ āĻāĻā§āĻˇāĻ°āĻŋāĻ āĻ āĻ°ā§āĻĨā§ āĻŽā§āĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻšāĻ¯āĻŧā§āĻāĻŋ: āĻāĻŽāĻŋ āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ āĻāĻŽāĻžāĻ° āĻ¸ā§āĻŦāĻĒā§āĻ¨ā§ āĻā§āĻĄ āĻĻā§āĻāĻŋāĨ¤ āĻā§āĻŦāĻ¨ā§āĻ° āĻāĻ āĻāĻ¤ā§āĻ°ā§āĻĨāĻžāĻāĻļ āĻšāĻ˛ āĻļāĻŋāĻ˛ā§āĻĒ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨, āĻā§āĻĄ āĻ˛ā§āĻāĻž āĻ¯āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻā§āĻĄ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻžāĻ¨ā§āĻ¨ āĻ¨āĻžāĨ¤
āĻāĻāĻž āĻāĻ¤āĻāĻž āĻāĻžāĻ°āĻžāĻĒ āĻāĻŋāĻ˛ āĻ¤āĻž āĻāĻžāĻ¨āĻžāĻ¤ā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻāĻā§ āĻā§āĻ¨āĻŋāĻ¯āĻŧāĻ° āĻāĻŋāĻ˛āĻžāĻŽ, āĻ¤āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻ¸ā§āĻāĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻā§ āĻāĻ āĻĻā§āĻāĻŋ āĻā§āĻ°āĻžāĻŦāĻžāĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻž āĻāĻāĻ¨ āĻ¸āĻŦāĻžāĻ° āĻšāĻžāĻāĻ˛ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻžāĻ¨ā§āĨ¤ āĻāĻŽāĻŋ āĻāĻ¨āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ā§ āĻāĻŋāĻ¯āĻŧā§ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ˛āĻžāĻŽ: "āĻŦāĻ¨ā§āĻ§ā§āĻ°āĻž, āĻāĻŽāĻžāĻā§ āĻŦāĻ˛ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻāĻŋ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻāĻā§, āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤? āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻ¤ āĻāĻžāĻāĻāĻŋ āĻāĻā§? āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻā§ āĻāĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ˛: "āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ 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