나는 다음 구성의 nginx 1.2.7을 @fallback 보내 않습니다. 큰 파일은 모두 제대로 작동하지만 작은 파일은 저장되지 않습니다. tcpdump를 다음 보여줍니다은의 nginx는 POST 데이터가
08:58:02.470116 IP 127.0.0.1.48396 > 127.0.0.1.9140: Flags [S], seq 1692815180, win 32792, options [mss 16396,sackOK,TS val 3699243831 ecr 0,nop,wscale 7], length 0
0x0000: 4500 003c b47b 4000 4006 883e 7f00 0001 E..<.{@[email protected]>....
0x0010: 7f00 0001 bd0c 23b4 64e6 4f4c 0000 0000 ......#.d.OL....
0x0020: a002 8018 fe30 0000 0204 400c 0402 080a [email protected]
0x0030: dc7d fb37 0000 0000 0103 0307 .}.7........
08:58:02.470146 IP 127.0.0.1.9140 > 127.0.0.1.48396: Flags [S.], seq 2061404772, ack 1692815181, win 32768, options [mss 16396,sackOK,TS val 3699243831 ecr 3699243831,nop,wscale 7], length 0
0x0000: 4500 003c 0000 4000 4006 3cba 7f00 0001 E..<[email protected]@.<.....
0x0010: 7f00 0001 23b4 bd0c 7ade 8a64 64e6 4f4d ....#...z..dd.OM
0x0020: a012 8000 fe30 0000 0204 400c 0402 080a [email protected]
0x0030: dc7d fb37 dc7d fb37 0103 0307 .}.7.}.7....
08:58:02.470165 IP 127.0.0.1.48396 > 127.0.0.1.9140: Flags [.], ack 1, win 257, options [nop,nop,TS val 3699243831 ecr 3699243831], length 0
0x0000: 4500 0034 b47c 4000 4006 8845 7f00 0001 E..4.|@[email protected]
0x0010: 7f00 0001 bd0c 23b4 64e6 4f4d 7ade 8a65 ......#.d.OMz..e
0x0020: 8010 0101 fe28 0000 0101 080a dc7d fb37 .....(.......}.7
0x0030: dc7d fb37 .}.7
08:58:02.471383 IP 127.0.0.1.48396 > 127.0.0.1.9140: Flags [F.], seq 1, ack 1, win 257, options [nop,nop,TS val 3699243832 ecr 3699243831], length 0
0x0000: 4500 0034 b47d 4000 4006 8844 7f00 0001 E..4.}@[email protected]
0x0010: 7f00 0001 bd0c 23b4 64e6 4f4d 7ade 8a65 ......#.d.OMz..e
0x0020: 8011 0101 fe28 0000 0101 080a dc7d fb38 .....(.......}.8
0x0030: dc7d fb37 .}.7
08:58:02.471603 IP 127.0.0.1.9140 > 127.0.0.1.48396: Flags [F.], seq 1, ack 2, win 256, options [nop,nop,TS val 3699243832 ecr 3699243832], length 0
0x0000: 4500 0034 715d 4000 4006 cb64 7f00 0001 E..4q]@[email protected]
0x0010: 7f00 0001 23b4 bd0c 7ade 8a65 64e6 4f4e ....#...z..ed.ON
0x0020: 8011 0100 fe28 0000 0101 080a dc7d fb38 .....(.......}.8
0x0030: dc7d fb38 .}.8
08:58:02.471641 IP 127.0.0.1.48396 > 127.0.0.1.9140: Flags [.], ack 2, win 257, options [nop,nop,TS val 3699243832 ecr 3699243832], length 0
0x0000: 4500 0034 b47e 4000 4006 8843 7f00 0001 [email protected]@..C....
0x0010: 7f00 0001 bd0c 23b4 64e6 4f4e 7ade 8a66 ......#.d.ONz..f
0x0020: 8010 0101 fe28 0000 0101 080a dc7d fb38 .....(.......}.8
0x0030: dc7d fb38 .}.8
각 패킷이 length 0
을 가지고 볼 수 있듯이. 대용량 파일> 30kb (1500bytes, 3000bytes를 확인하지 않음)의 경우 패킷 길이가 표시됩니다.
nginx의 버그이며 POST 요청 본문의 내용을 메모리에 저장하지 않습니다 (또는 하나의 네트워크 패킷 < 1500b)?
설계함으로써 나는에 allways 내가 POST 핸들러 논리에
있었다