I found that whenever Content-Encoding: gzip is on. Nginx will return 200 instead of 206. When gzip is off, nginx will return range request normally. Is that the expected behavior for nginx? Thanks Don Posted at Nginx Forum: http://forum.nginx.org/read.php?2,252767,252767#msg-252767