nginx 1.21.4 ๋ฆด๋ฆฌ์Šค

nginx 1.21.4์˜ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ๊ทธ ์•ˆ์—์„œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์ด ๊ณ„์†๋ฉ๋‹ˆ๋‹ค(๋ณ‘๋ ฌ ์ง€์› ์•ˆ์ • ๋ธŒ๋žœ์น˜ 1.20์—์„œ๋Š” ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ๋ฐ ์ทจ์•ฝ์  ์ œ๊ฑฐ์™€ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ ์šฉ๋จ).

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ALPN ๋Œ€์‹  NPN(Next Protocol Negotiation) ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ HTTP/2 ์—ฐ๊ฒฐ ์„ค์ •์— ๋Œ€ํ•œ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ ํ˜‘์ƒ ์ค‘์— ์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ด ์„ ํƒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ALPN ํ™•์žฅ์„ ์‚ฌ์šฉํ•  ๋•Œ SSL ์—ฐ๊ฒฐ์ด ๋‹ซํžˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • "sendfile_max_chunk" ์ง€์‹œ์–ด์—์„œ ๊ธฐ๋ณธ๊ฐ’์€ 2MB๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ŠคํŠธ๋ฆผ ๋ชจ๋“ˆ์—๋Š” Proxy_half_close ์ง€์‹œ์–ด๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ํ•œ์ชฝ์—์„œ ํ”„๋ก์‹œ TCP ์—ฐ๊ฒฐ์„ ๋‹ซ์„ ๋•Œ("TCP half-close") ๋™์ž‘์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ŠคํŠธ๋ฆผ ๋ชจ๋“ˆ์—๋Š” ์ง€์›๋˜๋Š” ALPN ํ”„๋กœํ† ์ฝœ(h2, http/1.1) ๋ชฉ๋ก๊ณผ ํด๋ผ์ด์–ธํŠธ์™€ ํ•ฉ์˜ํ•œ ALPN ํ”„๋กœํ† ์ฝœ์„ ๋ฐ˜์˜ํ•˜๋Š” $ssl_alpn_protocol ๋ณ€์ˆ˜ ๋ชฉ๋ก์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ssl_alpn ์ง€์‹œ๋ฌธ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • OpenSSL 3.0์„ ์‚ฌ์šฉํ•  ๋•Œ SSL_sendfile() ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ‚ค ํ”„๋ ˆ์ž„์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์„ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ngx_http_mp4_module ๋ชจ๋“ˆ์— "mp4_start_key_frame" ์ง€์‹œ์–ด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ฒญํฌ ์ „์†ก ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•  ๋•Œ $content_length ๋ณ€์ˆ˜ ์„ค์ •์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋ก์‹œ๋œ ๋ฐฑ์—”๋“œ์—์„œ ์ž˜๋ชป๋œ ๊ธธ์ด์˜ ์‘๋‹ต์„ ์ˆ˜์‹ ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—ฐ๊ฒฐ ์บ์‹ฑ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐฑ์—”๋“œ์˜ ํ—ค๋”๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๊ฒฝ์šฐ "์ •๋ณด" ๋Œ€์‹  "์˜ค๋ฅ˜" ์ˆ˜์ค€์œผ๋กœ ๋กœ๊น…๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • HTTP/2 ๋ฐ aio_write ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•  ๋•Œ ์š”์ฒญ์ด ์ค‘๋‹จ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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