OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻžāĻ†āĻŽāĻ°āĻž āĻ¸āĻŽā§āĻŽā§‡āĻ˛āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻĻāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻŋ āĻšāĻžāĻ‡āĻ˛ā§‹āĻĄ++ 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 āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻāĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ†āĻ›ā§‡. OpenResty āĻ˛ā§āĻ¯āĻŧāĻžāĻļ āĻāĻŦāĻ‚ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ‰āĻ­āĻ¯āĻŧāĻ‡ āĻāĻ•āĻ—ā§āĻšā§āĻ› āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻāĻ•āĻ¤ā§āĻ° āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ†āĻ›ā§‡ - āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ āĻ•āĻžāĻœ.

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ

āĻ—āĻžāĻ¨ā§‡āĻ° āĻ•āĻĨāĻž āĻ¯āĻĨā§‡āĻˇā§āĻŸ, āĻ†āĻ¸ā§āĻ¨ āĻ•ā§‹āĻĄā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ‡āĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻšā§āĻ¯āĻžāĻ˛ā§‹ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ“āĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ? āĻāĻ‡ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨. āĻ†āĻŽāĻ°āĻž āĻšāĻŋāĻ¨ā§āĻ¤āĻž āĻ•āĻ°āĻŋ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻ˛āĻŋāĻ–āĻŋ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻŋ āĻ¨āĻž - āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ NGINX-āĻ āĻ†āĻ›ā§‡, āĻ†āĻŽāĻ°āĻž āĻ­āĻžāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ˛āĻ¸āĻ­āĻžāĻŦā§‡ āĻŦāĻžāĻ¸ āĻ•āĻ°āĻŋāĨ¤

content_by_lua_block āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻ¯āĻž āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ˛ā§āĻ¯āĻŧāĻž āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻžāĻŽāĻ—ā§āĻ°ā§€ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻ›āĻŋā§ˇ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¨āĻŋāĻ‡ remote_addr āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ¸ā§āĻ˛āĻŋāĻĒ string.format. āĻāĻ‡ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻ‡ sprintf, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° Lua, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻ āĻŋāĻ•. āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĨāĻžāĻ•āĻŋāĨ¤

āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻŦā§‡:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻœāĻ—āĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡āĨ¤ āĻ‰āĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§‡, āĻ•ā§‡āĻ‰ āĻšā§āĻ¯āĻžāĻ˛ā§‹ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻĨāĻžāĻ“ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻļā§āĻ§ā§ āĻŦāĻ¸ā§‡ āĻŦāĻ¸ā§‡ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻž āĻ–ā§āĻŦ āĻ­āĻžāĻ˛ā§‹ āĻ¨āĻž. āĻ¯āĻ–āĻ¨ 100.000 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ†āĻ¸ā§‡, āĻāĻŸāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ–ā§āĻŦ āĻ•āĻ āĻŋāĻ¨āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻ¸ā§āĻ¨ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ›āĻŦāĻŋ āĻ–ā§āĻāĻœāĻŦ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĨ¤ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ†āĻŽāĻ°āĻž āĻļā§āĻ§ā§ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻŦ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻ•ā§€āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚, āĻ¯āĻĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ "āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĻ›āĻžāĻ¨āĻž" āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛, āĻĢā§āĻ˛āĻĢāĻŋ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻŦāĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻĒā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻĻā§āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ GET āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻŦāĻžāĻ›āĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ•ā§‹āĻ¨ā§‹ āĻœāĻŸāĻŋāĻ˛āĻ¤āĻž āĻ¨ā§‡āĻ‡āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛ āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•ā§€āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻāĻ•ā§āĻ¸āĻŸā§‡āĻ¨āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ āĻĨā§‡āĻ•ā§‡ āĻāĻ‡ āĻ¤āĻĨā§āĻ¯āĻŸāĻŋ āĻĒāĻžāĻ‡āĨ¤ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸āĻšāĻœ. āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— resty.mysql, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋāĻŸ āĻ†āĻ›ā§‡. āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻžāĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻ¨ā§‡āĻ‡, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ SQL āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§āĻ¨:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻāĻŸāĻž āĻāĻ•āĻŸā§ āĻ­ā§€āĻ¤āĻŋāĻ•āĻ°, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻž āĻ•āĻžāĻœ āĻ•āĻ°ā§‡. āĻāĻ–āĻžāĻ¨ā§‡ 10 āĻšāĻ˛ āĻ¸ā§€āĻŽāĻžāĨ¤ āĻ†āĻŽāĻ°āĻž 10āĻŸāĻŋ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻŦā§‡āĻ° āĻ•āĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻ…āĻ˛āĻ¸, āĻ†āĻŽāĻ°āĻž āĻ†āĻ°āĻ“ āĻĻā§‡āĻ–āĻžāĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻžāĨ¤ āĻāĻ¸āĻ•āĻŋāĻ‰āĻāĻ˛-āĻ, āĻ†āĻŽāĻŋ āĻ¸ā§€āĻŽāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›āĻŋāĨ¤

āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ‡āĻŽā§‡āĻœ āĻ–ā§āĻāĻœā§‡. āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻ—ā§āĻšā§āĻ› āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ Lua āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĒā§‚āĻ°āĻŖ āĻ•āĻ°āĻŋ reqs, āĻāĻŦāĻ‚ āĻ•āĻ° ngx.location.capture_multi.

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ‰āĻ¤ā§āĻ¤āĻ°āĻ—ā§āĻ˛āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡āĨ¤ āĻšāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧāĻŸāĻŋ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ§ā§€āĻ° āĻ—āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻŽāĻžāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻ¸āĻŦāĻžāĻ‡ 50 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻŋ, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻļāĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻžāĻ āĻžāĻ‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž 50 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒāĻžāĻŦā§ˇ

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ…āĻ˛āĻ¸ āĻāĻŦāĻ‚ HTTP āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ•ā§āĻ¯āĻžāĻļāĻŋāĻ‚ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻž, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž NGINX āĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°āĻŦāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻĻā§‡āĻ–ā§‡āĻ›ā§‡āĻ¨, āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ›āĻŋāĻ˛ url/fetch, āĻāĻŸāĻž āĻāĻ–āĻžāĻ¨ā§‡:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻ¸āĻšāĻœ āĻ•āĻ°āĻŋ proxy_pass, āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ•ā§āĻ¯āĻžāĻļā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤

āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻ¨āĻ¯āĻŧ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ–āĻ¨āĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻ˛ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ•ā§‡ JSON-āĻ āĻ¸āĻšāĻœā§‡, āĻĻā§āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ•āĻ°āĻžāĨ¤ āĻ†āĻŽāĻ°āĻž Content-Type āĻĻāĻŋāĻ‡, āĻ†āĻŽāĻ°āĻž JSON āĻĻā§‡āĻ‡āĨ¤

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ†āĻ›ā§‡: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ JSON āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¨āĻžāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĢā§āĻ°āĻ¨ā§āĻŸ-āĻāĻ¨ā§āĻĄ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ†āĻ•āĻ°ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻāĻŦāĻ‚ āĻāĻ¸āĻ‡āĻ“ āĻŦāĻŋāĻļā§‡āĻˇāĻœā§āĻžāĻ°āĻž āĻŦāĻ˛āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻ›āĻŦāĻŋāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœāĻ›āĻŋ, āĻ¤āĻŦā§‡ āĻ¤āĻžāĻ°āĻž āĻĒāĻžāĻ¤ā§āĻ¤āĻž āĻĻā§‡āĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĻā§‡āĻ‡, āĻ¤āĻžāĻ°āĻž āĻŦāĻ˛āĻŦā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻš āĻ‡āĻžā§āĻœāĻŋāĻ¨āĻ—ā§āĻ˛āĻŋ āĻ•āĻŋāĻ›ā§ āĻ¸ā§‚āĻšā§€ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤

āĻāĻŸāĻž āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ•āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨? āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ HTML āĻĻā§‡āĻŦāĨ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻ—ā§āĻ˛āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ āĻŋāĻ• āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ā§ˇ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ†āĻ›ā§‡ lua-resty-template.

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ­āĻ¯āĻŧāĻ™ā§āĻ•āĻ° āĻ…āĻ•ā§āĻˇāĻ° OPM āĻĻā§‡āĻ–ā§‡āĻ›ā§‡āĻ¨āĨ¤ OpenResty āĻāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ¸ā§‡, āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ—ā§āĻšā§āĻ› āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡, lua-resty-template. āĻāĻŸāĻŋ āĻœā§āĻ¯āĻžāĻ™ā§āĻ—ā§‹ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ‡āĻžā§āĻœāĻŋāĻ¨āĨ¤ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‹āĻĄ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ‡āĻ°āĻ•āĻŽ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻžāĻŦā§‡:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻĄā§‡āĻŸāĻž āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸāĻŸāĻŋāĻ•ā§‡ āĻ†āĻŦāĻžāĻ° āĻĻā§āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ°ā§‡āĻ¨ā§āĻĄāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ–ā§āĻļāĻŋ, āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĻ¨. āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¤āĻŋāĻ¨āĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĻ›āĻžāĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻļāĻŽ āĻ¸ā§€āĻ˛āĻ“ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĻ¨āĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻ–āĻ¨āĻ‡ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¨āĻž, āĻšāĻ¯āĻŧāĻ¤ā§‹ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ–ā§āĻāĻœāĻ›āĻŋāĻ˛ā§‡āĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻŋāĻ¨āĻŋ āĻ¤āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĻ¨āĻŋāĨ¤

āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ‡ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ•āĻžāĻļā§‡ āĻ†āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻāĻ–āĻ¨āĻ“ āĻĻā§‡āĻ–āĻžāĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻžāĨ¤ āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•. āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻ¸ā§āĻ¨ āĻĻā§‡āĻ–āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ NGINX OpenResty āĻāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°ā§‡āĻ•ā§āĻˇāĻŋāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡:

  • āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°ā§āĻŦ- āĻĒā§āĻ°āĻŦā§‡āĻļ, āĻ¯āĻ–āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻāĻ‡āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¸ā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻ•ā§‡ āĻšā§‡āĻĄāĻžāĻ°, IP āĻ āĻŋāĻ•āĻžāĻ¨āĻž, āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ¨āĻž āĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻāĻŸāĻŋ āĻ•ā§‡āĻŸā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ…āĻĨāĻŦāĻž āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§‡āĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒāĻžāĻ‡, āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ•ā§‡āĻŸā§‡ āĻĢā§‡āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤
  • āĻĒā§āĻ¨āĻ°ā§āĻŦāĻžāĻ° āĻ˛ā§‡āĻ–āĻž. āĻ•āĻŋāĻ›ā§ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§‡āĻ–āĻžāĨ¤
  • āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§. āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻ¸āĻžāĻŽāĻ—ā§āĻ°ā§€ āĻĻāĻŋāĻ‡āĨ¤
  • āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°. āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨. āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ proxy_pass, āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ•ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ†āĻ—ā§‡ āĻ•āĻŋāĻ›ā§ āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤
  • āĻļāĻ°ā§€āĻ°ā§‡āĻ° āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°. āĻ†āĻŽāĻ°āĻž āĻļāĻ°ā§€āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤
  • āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°ā§āĻ¨ - āĻ˛āĻ—āĻŋāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ¸ā§āĻ¤āĻ° āĻ›āĻžāĻĄāĻŧāĻž āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻšā§‡ āĻ˛āĻ— āĻ˛ā§‡āĻ–āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻāĻ‡ āĻŽāĻ¤ āĻ•āĻŋāĻ›ā§ āĻĻā§‡āĻ–āĻžāĻŦā§‡:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦ location, āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ†āĻ—ā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ°ā§‡āĻ–ā§‡āĻ›āĻŋ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ•āĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§‡āĻ–āĻ¤ā§‡. āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°āĻŋāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ§ā§‚āĻ°ā§āĻ¤ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ•āĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§ˇ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻ°ā§‡āĻĄāĻŋāĻ¸ā§‡āĻ“ āĻ°āĻžāĻ–āĻŦ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ°ā§‡āĻĄāĻŋāĻ¸ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ–ā§āĻŦ āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ­āĻžāĻˇāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻžāĻĨā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ‡āĻ¨āĻĒā§āĻŸ/āĻ†āĻ‰āĻŸāĻĒā§āĻŸ, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§€ āĻ†āĻ›ā§‡, āĻāĻ–āĻžāĻ¨ā§‡ āĻ•ā§€ āĻ†āĻ›ā§‡, āĻāĻŸāĻŋ āĻŦā§āĻ˛āĻ• āĻ•āĻ°āĻ›ā§‡ āĻ¨āĻžāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸ āĻ•ā§‹āĻĄ āĻ˛ā§‡āĻ–ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ¸āĻŋāĻ™ā§āĻ•ā§āĻ°ā§‹āĻ¨āĻžāĻ¸āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĨ¤ Gevent āĻ¸āĻ™ā§āĻ—ā§‡ āĻŽāĻ¤, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ­āĻžāĻ˛ āĻ•āĻ°āĻž.

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻ¸ā§āĻ¨ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ•āĻ°āĻŋ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ°āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ¸ā§āĻŸ āĻŦāĻĄāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž POST āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ, āĻ˛āĻ—āĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻ āĻŋāĻ• āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ­ā§āĻ˛ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°āĻŋāĨ¤ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ°āĻž āĻ¸āĻ āĻŋāĻ• āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž Redis āĻ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ˛āĻŋāĻ–āĻŋ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ•ā§āĻ•āĻŋ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž, āĻāĻŸāĻŋ āĻĻā§āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

OpenResty: NGINX āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻ•āĻ°āĻž

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸āĻšāĻœ, āĻ…āĻ¨ā§āĻŽāĻžāĻ¨āĻŽā§‚āĻ˛āĻ•āĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ†āĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦ āĻ¨āĻž āĻ¯āĻž āĻŽāĻžāĻ¨ā§āĻˇāĻ•ā§‡ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§‡ āĻœāĻžāĻ¨ā§‡āĨ¤ āĻ¤ā§‹ āĻšāĻ˛ā§āĻ¨ āĻœā§‡āĻ¨ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• āĻ‰ā§ŽāĻĒāĻžāĻĻāĻ¨ā§‡ āĻ•āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

  • āĻŽāĻŋāĻ¨āĻŋāĻŽāĻžāĻ˛āĻŋāĻ¸ā§āĻŸ āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄ. āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ•āĻāĻ¨ā§āĻĄā§‡ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻĄā§‡āĻŸāĻž āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡: āĻ•ā§‹āĻĨāĻžāĻ“ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¤āĻžāĻ°āĻŋāĻ– āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ•ā§‹āĻĨāĻžāĻ“ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻ§āĻ°āĻŖā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻ–āĻ¨ āĻ¸āĻžāĻ‡āĻŸā§‡ āĻ•āĻ¤āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻžāĻ° āĻŦāĻž āĻĒāĻ°āĻŋāĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ¨ā§‡ āĻ¸ā§āĻ•ā§āĻ°ā§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ¤ āĻ›ā§‹āĻŸ āĻ•āĻŋāĻ›ā§āĨ¤ āĻ•āĻŋāĻ›ā§ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻŸā§āĻ•āĻ°āĻž āĻ–ā§āĻŦ āĻ¸āĻšāĻœā§‡āĻ‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤, āĻ¸āĻšāĻœ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻšāĻŦā§‡āĨ¤
  • āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚. āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§ƒāĻˇā§āĻ āĻžāĻ¯āĻŧ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻāĻŽā§āĻŦā§‡āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨