[Nginx] response_status = 0์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

"์‚ฌ์ด๋“œ๋…ธํŠธ" ์นดํ…Œ๊ณ ๋ฆฌ์— ์†ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

TL : DR :

http2_max_field_size 8k; # ะฒัะตั… ัะฟะฐัะตั‚!

ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ๋ฐฑ์—”๋“œ์˜ ์ผ๋ถ€ ๋‚ด๋ถ€ ๋กœ์ง์„ ๋ณ€๊ฒฝํ•œ ํ›„ ๋กœ๊ทธ์—์„œ ์ด์ƒํ•œ response_code, ์ฆ‰ 0์„ ๊ด€์ฐฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค.

{
  "timestamp": "2020-01-17T08:41:51+00:00",
  "remote_addr": "zzz.zzz.zzz.zzz",
  "request_time": 0,
  "upstream_response_time": "",
  "upstream_header_time": "",
  "http_accept_language": "-language",
  "response_status": 0,
  "request": "",
  "host": "example.com",
  "upstream_addr": "",
  "http_referrer": "",
  "request_length": 5854,
  "bytes_sent": 0,
  "http_user_agent": ""
}


์ด ์ฃผ์ œ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด... ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ—ค๋”๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ  ์—ฐ๊ฒฐ์„ ๋‹ซ์„ ๋•Œ ์ด ๋™์ž‘์ด ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€์Ž„, ๊ทธ๋ฆฌ๊ณ  wsgi_์— ๋Œ€ํ•œ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๋‹ค์–‘ํ•œ ์ด๊ตญ์ ์ธ ๊ฒƒ๋“ค์ด ์žˆ๋Š”๋ฐ, ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” "์–ด๋–ค ์‹์œผ๋กœ๋“ "์ด๋ผ๋Š” ๋‹จ์–ด์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ์šฐ๋ฆฌ ๋ณผ๋ฅจ์—์„œ๋Š” ์ „ํ˜€ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ์‚ฌ์‹ค์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ๊ณ  ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ๋‹ค์Œ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๋‹นํ™ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ๋งํฌ๊ฐ€ http๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ ์—†์ด ์—ด๋ฆฌ์ง€๋งŒ https๋ฅผ ํ†ตํ•œ ์ž‘์—…์ด ์™„์ „ํžˆ ๊ฑฐ๋ถ€๋˜์–ด ๋ฉ‹์ง„ ๊ฒฐ๊ณผ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. example.com ํ˜ธ์ŠคํŠธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ #0์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์ปฌ: (52) ์„œ๋ฒ„์˜ ๋นˆ ์‘๋‹ต

๋กœ๊ทธ์—์„œ๋Š” IP๋กœ๋งŒ ์ด ํ•ญ๋ชฉ์„ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์š”์ฒญ์ด๋‚˜ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์•…๋ช… ๋†’์€ ์ƒํƒœ๋งŒ 0์ธ๋ฐ, ์š”์ฒญ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋ฌด์—‡์ด ์ž˜๋ชป๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

๋“ค์–ด 443 SSL์„ http2 ๋ฐฑ๋กœ๊ทธ=8192;

SSL ์—ฐ๊ฒฐ์— http2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์š”์ฒญ ๋ฒ„ํผ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉฐ ngx_http_v2_module์—์„œ๋„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰:

ะกะธะฝั‚ะฐะบัะธั:	http2_max_field_size ั€ะฐะทะผะตั€;
ะฃะผะพะปั‡ะฐะฝะธะต:	http2_max_field_size 4k;
ะšะพะฝั‚ะตะบัั‚:	http, server

HPACK์„ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•๋œ ์š”์ฒญ ํ—ค๋”์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด์€ ์ด๋ฆ„๊ณผ ๊ฐ’ ๋ชจ๋‘์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ—ˆํ”„๋งŒ ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์••์ถ•์„ ํ‘ผ ์ด๋ฆ„ ๋ฐ ๊ฐ’ ๋ฌธ์ž์—ด์˜ ์‹ค์ œ ํฌ๊ธฐ๋Š” ๋” ํด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ œํ•œ์€ ๋Œ€๋ถ€๋ถ„์˜ ์ฟผ๋ฆฌ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ด๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์™œ ๋ชจ๋‘? ๋งํฌ์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ 4k๋ณด๋‹ค ๊ธธ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 8kb(๋˜๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๋งŒํผ)๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๊ฒƒ๋“ค.

์ถœ์ฒ˜ : habr.com

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