nginx 1.19.1 ๋ฐ njs 0.4.2 ์ถœ์‹œ

๋„์ž… ์ƒˆ๋กœ์šด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜ ์ถœ์‹œ nginx 1.19.1, ๊ทธ ์•ˆ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐํšŒ๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ๋กœ ์•ˆ์ •์ ์œผ๋กœ ์ง€์›๋จ ๋ธŒ๋žœ์น˜ 1.18.x ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ๋ฐ ์ทจ์•ฝ์  ์ œ๊ฑฐ์™€ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ๋งŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋‚ด๋…„์—๋Š” ๋ฉ”์ธ๋ธŒ๋žœ์น˜ 1.19.x๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ˆ์ •์ ์ธ ๋ธŒ๋žœ์น˜ 1.20์ด ํ˜•์„ฑ๋  ์˜ˆ์ •์ด๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ:

  • ์ง€์‹œ๋ฌธ์—์„œ "ํ”„๋ก์‹œ_์บ์‹œ_๊ฒฝ๋กœ",
    "fastcgi_cache_path", "scgi_cache_path" ๋ฐ "uwsgi_cache_path"๋Š” ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์˜ ์ตœ์†Œ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜์—ฌ ์บ์‹œ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๋Š” "min_free" ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ง€์‹œ์–ด "lingering_close", "lingering_time" ๋ฐ "lingering_timeout"์€ HTTP/2์—์„œ ์ž‘๋™ํ•˜๋„๋ก ์กฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ์—์„œ ๋ณด๋‚ธ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์‚ญ์ œ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • FastCGI ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋งค์šฐ ์งง์€ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด Nginx๋Š” ์ด์ œ ์‘๋‹ต์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์„ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ด๋ ค๊ณ  ์‹œ๋„ํ•œ ๋‹ค์Œ ์—ฐ๊ฒฐ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.
  • gRPC ๋ฐฑ์—”๋“œ์—์„œ ์ž˜๋ชป๋œ ๊ธธ์ด์˜ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด Nginx๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SIGQUIT ์‹ ํ˜ธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ˆ˜์‹  Unix ์†Œ์ผ“ ์ œ๊ฑฐ๊ฐ€ ๋ณด์žฅ๋˜์—ˆ๊ณ , SSL์„ ์‚ฌ์šฉํ•  ๋•Œ ํฌ๊ธฐ๊ฐ€ 0์ธ UDP ํŒจํ‚ท์˜ ํ”„๋ก์‹œ ๋ฐ uwsgi ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํ”„๋ก์‹œ๊ฐ€ ์กฐ์ •๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ๋•Œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "ssl_ocsp" ์ง€์‹œ์–ด, XFS ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์บ์‹œ ํฌ๊ธฐ ๊ณ„์‚ฐ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์œผ๋ฉฐ NFS์ž…๋‹ˆ๋‹ค.

๋™์‹œ์— ์ผ์–ด๋‚ฌ๋‹ค ๋ฌธ์ œ njs 0.4.2, nginx ์›น ์„œ๋ฒ„์šฉ JavaScript ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ž…๋‹ˆ๋‹ค. njs ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋Š” ECMAScript ํ‘œ์ค€์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ๊ตฌ์„ฑ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” nginx์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ ์ฒ˜๋ฆฌ, ๊ตฌ์„ฑ ์ƒ์„ฑ, ๋™์ ์œผ๋กœ ์‘๋‹ต ์ƒ์„ฑ, ์š”์ฒญ/์‘๋‹ต ์ˆ˜์ • ๋˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์Šคํ… ์‹ ์† ์ƒ์„ฑ์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ๋…ผ๋ฆฌ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—๋Š” RegExp.prototype[Symbol.replace] ๋ฐ %TypedArray%.prototype.sort()์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ธ๋ณ„ ์—ญ์ถ”์  ๊ฐ€๋Šฅ์„ฑ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. mkdir(), readdir() ๋ฐ rmdir()๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๊ฐ€ "fs" ๋ชจ๋“ˆ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋Ÿฌ์‹œ์•„ ์—ฐ๋ฐฉ ๋‚ด๋ฌด๋ถ€๋Š” ๋ฐ›์€ Nginx ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ๊ถŒ๋ฆฌ์™€ ๊ด€๋ จ๋œ ํ˜•์‚ฌ ์‚ฌ๊ฑด ์ข…๋ฃŒ์— ๋Œ€ํ•œ ์ •๋ณด ํ™•์ธ ๋ฐ ๊ฐ๋… ๊ฒ€์ฐฐ์ฒญ์˜ ๊ฒฐ์ • ๊ฒ€์ฆ ์™„๋ฃŒ. โ€œNginx ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ Rambler Internet Holding LLC์˜ ์ €์ž‘๊ถŒ ์นจํ•ด ์‚ฌ์‹ค์„ ๊ทผ๊ฑฐ๋กœ 04.12.2019๋…„ 18.05.2020์›” 1์ผ์— ์‹œ์ž‘๋œ ํŠน์ • ํ˜•์‚ฌ ์‚ฌ๊ฑด์€ ์ œ1๋ถ€ ์ œ24ํ•ญ์— ๋”ฐ๋ผ XNUMX๋…„ XNUMX์›” XNUMX์ผ์— ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„ ์—ฐ๋ฐฉ ํ˜•์‚ฌ์†Œ์†ก๋ฒ• XNUMX์กฐ(๋ฒ”์ฃ„ ๋‚ด์šฉ์ด ๋ถ€์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—).โ€ ํ˜•์‚ฌ ์‚ฌ๊ฑด์ด ์ข…๊ฒฐ๋˜๊ธฐ ์ „ ัะพะพะฑั‰ะธะป Nginx์˜ ์ €์ž์ธ Igor Sysoev๋Š” ๊ฐ๋… ๋‹น๊ตญ์— ์˜ํ•ด ์ด ๊ฒฐ์ •์ด ์ทจ์†Œ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—ฌ์ „ํžˆ ๋‚จ์•„์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๋ฏธ๊ตญ ๋ฒ•์›์—์„œ๋Š” ๊ณ„์†ํ•˜๋‹ค Nginx์— ๋Œ€ํ•œ ๊ถŒ๋ฆฌ์™€ ๊ด€๋ จํ•˜์—ฌ ๋ฒ•๋ฅ  ํšŒ์‚ฌ์ธ Lynwood Investments๊ฐ€ ์†Œ์†ก์„ ์ œ๊ธฐํ•œ ํ›„ ์‹œ์ž‘๋œ F5 Networks ํšŒ์‚ฌ์— ๋Œ€ํ•œ ์†Œ์†ก์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€