āĻ‰āĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§‡āĻ° āĻāĻ• āĻŦāĻ›āĻ° āĻĒāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ‰āĻšā§āĻš-āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āĻŸāĻŋāĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻļāĻžāĻ–āĻž nginx 1.18.0, āĻ¯āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļāĻžāĻ–āĻž 1.17.x āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻœāĻŽāĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻļā§‹āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡, āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§€āĻ˛ āĻļāĻžāĻ–āĻž 1.18-āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ—ā§āĻ°ā§āĻ¤āĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻāĻŦāĻ‚ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻĻā§‚āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤ nginx 1.19 āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļāĻžāĻ–āĻž āĻļā§€āĻ˜ā§āĻ°āĻ‡ āĻ—āĻ āĻŋāĻ¤ āĻšāĻŦā§‡, āĻ¯āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻ—ā§āĻ˛āĻŋāĻ° āĻŦāĻŋāĻ•āĻžāĻļ āĻ…āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻžāĻĻā§‡āĻ° āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻ•ā§āĻˇā§‡āĻ° āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻœ āĻ¨ā§‡āĻ‡, āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻļāĻžāĻ–āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨, āĻ¯āĻžāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§‡ āĻŦāĻžāĻŖāĻŋāĻœā§āĻ¯āĻŋāĻ• āĻĒāĻŖā§āĻ¯ Nginx Plus āĻāĻ° āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¤āĻŋāĻ¨ āĻŽāĻžāĻ¸ā§‡ āĻ—āĻ āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻāĻĒā§āĻ°āĻŋāĻ˛ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ Netcraft nginx āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻžāĻ‡āĻŸā§‡āĻ° 19.56% āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ (āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 20.73%, āĻĻā§āĻ‡ āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 21.02%), āĻ¯āĻž āĻāĻ‡ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻžāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ¸ā§āĻĨāĻžāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ (Apache-āĻāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ° 27.64%, Google - 10.03%, Microsoft IIS - 4.77%)āĨ¤ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ‡āĻŸ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, nginx āĻ¤āĻžāĻ° āĻ¨ā§‡āĻ¤ā§ƒāĻ¤ā§āĻŦ āĻ§āĻ°ā§‡ āĻ°āĻžāĻ–ā§‡ āĻāĻŦāĻ‚ āĻŦāĻžāĻœāĻžāĻ°ā§‡āĻ° 36.91% (āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 27.52%) āĻĻāĻ–āĻ˛ āĻ•āĻ°ā§‡, āĻ¯āĻ–āĻ¨ Apache āĻāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ° 24.73%, Microsoft IIS - 12.85%, Google - 3.42% āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻŋāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤

āĻŦāĻŋāĻļā§āĻŦā§‡āĻ° āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ¸āĻžāĻ‡āĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡, nginx-āĻāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻšāĻ˛ 25.54% (āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 26.22%, āĻĻā§āĻ‡ āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 23.76%)āĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡, āĻĒā§āĻ°āĻžāĻ¯āĻŧ 459 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ Nginx āĻšāĻžāĻ˛āĻžāĻšā§āĻ›ā§‡ (āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ 397 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨)āĨ¤ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ‰āĻĒāĻžāĻ¤ā§āĻ¤ W3Techs nginx āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻŦā§‡āĻļāĻŋ āĻĻā§‡āĻ–āĻž āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ 31.9% āĻ¸āĻžāĻ‡āĻŸā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ—āĻ¤ āĻŦāĻ›āĻ°ā§‡āĻ° āĻāĻĒā§āĻ°āĻŋāĻ˛ā§‡ āĻāĻ‡ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻŸāĻŋ āĻ›āĻŋāĻ˛ 41.8%, āĻ†āĻ—ā§‡āĻ° āĻŦāĻ›āĻ° - 38% (āĻ•ā§āĻ˛āĻžāĻ‰āĻĄāĻĢā§āĻ˛ā§‡āĻ¯āĻŧāĻžāĻ° HTTP āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻĒā§ƒāĻĨāĻ• āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸāĻŋāĻ‚āĻ¯āĻŧā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻšā§āĻ°āĻžāĻ¸ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡)āĨ¤ Apache āĻāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻŦāĻ›āĻ°ā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§‡ 43.6% āĻĨā§‡āĻ•ā§‡ 38.9% āĻāĻŦāĻ‚ Microsoft IIS-āĻāĻ° āĻļā§‡āĻ¯āĻŧāĻžāĻ° 8.6% āĻĨā§‡āĻ•ā§‡ 8.3% āĻ āĻ¨ā§‡āĻŽā§‡ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻž nginx āĻ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻžāĻ‡āĻŸā§‡āĻ° 78.9% (āĻāĻ• āĻŦāĻ›āĻ° āĻ†āĻ—ā§‡ - 81%)āĨ¤

1.17.x āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ āĻļāĻžāĻ–āĻžāĻ° āĻŦāĻŋāĻ•āĻžāĻļā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ‰āĻ¨ā§āĻ¨āĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¸ā§€āĻŽāĻž_āĻ†āĻ°āĻ•_ āĻļā§āĻ•āĻ¨ā§‹_āĻ†āĻ°, āĻ¯āĻž āĻŸā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻ°āĻžāĻ¨ āĻŽā§‹āĻĄ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖā§‡āĻ° āĻ¤ā§€āĻŦā§āĻ°āĻ¤āĻžāĻ° āĻ‰āĻĒāĻ° āĻ•ā§‹āĻ¨ āĻŦāĻŋāĻ§āĻŋāĻ¨āĻŋāĻˇā§‡āĻ§ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž (āĻĻāĻ° āĻ¸ā§€āĻŽāĻž āĻ›āĻžāĻĄāĻŧāĻž), āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻž āĻŽā§‡āĻŽāĻ°āĻŋāĻ¤ā§‡ āĻ¸ā§€āĻŽāĻž āĻ›āĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡;
  • āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¸ā§€āĻŽāĻž_āĻ•āĻ¨_ āĻļā§āĻ•āĻ¨ā§‹_āĻ†āĻ°, āĻ¯āĻž ngx_http_limit_conn_module āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻŸāĻŋāĻ•ā§‡ āĻŸā§‡āĻ¸ā§āĻŸ āĻ°āĻžāĻ¨ āĻŽā§‹āĻĄā§‡ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ;
  • āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ "auth_ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ", āĻ¯āĻž āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¤ā§€āĻŦā§āĻ°āĻ¤āĻž āĻ•āĻŽāĻžāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§‡ āĻ¸ā§āĻ°āĻ•ā§āĻˇāĻž āĻĻāĻŋāĻ¤ā§‡ 401 āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•ā§‹āĻĄ āĻ¸āĻš āĻ…āĻ¨āĻ¨ā§āĻŽā§‹āĻĻāĻŋāĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻŦāĻŋāĻ˛āĻŽā§āĻŦ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ, āĻ¯ā§‡ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° (āĻŸāĻžāĻ‡āĻŽāĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻŸāĻžāĻ•) āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻ•āĻ°āĻž āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ, āĻāĻ•āĻŸāĻŋ subquery āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻŦāĻž āĻœā§‡āĻĄāĻžāĻŦā§āĻ˛ā§āĻŸāĻŋ (JSON āĻ“āĻ¯āĻŧā§‡āĻŦ āĻŸā§‹āĻ•ā§‡āĻ¨);
  • "āĻ¸ā§€āĻŽāĻž_āĻšāĻžāĻ°" āĻāĻŦāĻ‚ "āĻ¸ā§€āĻŽāĻž_āĻšāĻžāĻ°_āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€" āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽ āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡āĻ° "āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ_āĻ†āĻĒāĻ˛ā§‹āĻĄ_āĻ°ā§‡āĻŸ" āĻāĻŦāĻ‚ "āĻĒā§āĻ°āĻ•ā§āĻ¸āĻŋ_āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ_āĻ°ā§‡āĻŸ" āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€āĻ¤ā§‡ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻžāĻ¯āĻŧ grpc_pass āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĄā§‹āĻŽā§‡āĻ¨ āĻ¨āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻ¨āĻžāĻŽāĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻ—ā§āĻ°ā§āĻĒāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ•āĻžāĻ°ā§€ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ;
  • āĻ¨āĻ¤ā§āĻ¨ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ $proxy_protocol_server_addr и $proxy_protocol_server_port, āĻ¯āĻž PROXY āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛ āĻšā§‡āĻĄāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡;
  • āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡ ngx_stream_limit_conn_module āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ $limit_conn_status, āĻ¯āĻž āĻ¸āĻ‚āĻ¯ā§‹āĻ—ā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡: PASSED, REJECTED āĻŦāĻž REJECTED_DRY_RUN;
  • āĻŽāĻĄāĻŋāĻ‰āĻ˛ā§‡ ngx_http_limit_req_module āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ $limit_req_status, āĻ¯āĻž āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ†āĻ—āĻŽāĻ¨ā§‡āĻ° āĻšāĻžāĻ° āĻ¸ā§€āĻŽāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡: āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž, āĻŦāĻŋāĻ˛āĻŽā§āĻŦāĻŋāĻ¤, āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ¨ āĻ•āĻ°āĻž, DELAYED_DRY_RUN āĻŦāĻž REJECTED_DRY_RUN;
  • āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡, āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ ngx_http_postpone_filter_module;
  • āĻŦāĻŋāĻ˛ā§āĻŸ-āĻ‡āĻ¨ āĻĒāĻžāĻ°ā§āĻ˛ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĒā§āĻ°ā§‡āĻŸāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ $r->internal_redirect() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ "āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨" āĻŦā§āĻ˛āĻ• āĻ¨āĻžāĻŽāĻ• āĻŸāĻ—āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻāĻ–āĻ¨ āĻāĻ¸ā§āĻ•ā§‡āĻĒāĻĄ āĻ•ā§āĻ¯āĻžāĻ°ā§‡āĻ•ā§āĻŸāĻžāĻ° āĻ¸āĻš URI-āĻāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ°āĻŖ āĻœāĻĄāĻŧāĻŋāĻ¤;
  • "āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ" āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ āĻŦā§āĻ˛āĻ•ā§‡ "āĻ†āĻĒāĻ¸ā§āĻŸā§āĻ°āĻŋāĻŽ" āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ•āĻžāĻŸāĻžÂģ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ-āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦāĻžāĻ‡āĻ¨ā§āĻĄāĻŋāĻ‚āĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛ā§‹āĻĄ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻ¸āĻ‚āĻ—āĻ āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻ•ā§€ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§‡āĻ¨, āĻ‡āĻ‰āĻ¨āĻŋāĻĢāĻ°ā§āĻŽ āĻŦā§āĻ¯āĻžāĻ˛ā§‡āĻ¨ā§āĻ¸āĻŋāĻ‚ āĻŽā§‹āĻĄ (āĻ°āĻžāĻ‰āĻ¨ā§āĻĄ-āĻ°āĻŦāĻŋāĻ¨) āĻāĻ–āĻ¨ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡;
  • āĻ¸āĻŽāĻ¯āĻŧā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĻā§āĻ°ā§āĻ¤ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĨā§‡āĻ•ā§‡ āĻĒāĻĄāĻŧāĻž āĻāĻĄāĻŧāĻžāĻ¤ā§‡ ioctl(FIONREAD) āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ‰āĻ¤ā§āĻ¸: opennet.ru

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