led*_*edy 5 configuration nginx
如果不重新启动或修改配置,nginx 有时会发送不完整的响应。今天,我可以很好地重现,但仍然不知道出了什么问题或如何修复。
我将一个 5MB 文件放入 nginx 配置使用的站点位置/别名路径。没有 php5-fpm、模块等,只有 nginx 来提供静态文件。
测试时,没有其他用户访问服务器,除了我的测试请求之外,没有http访问。
下载失败,Google Chrome 在流量日志中显示有 2 个请求,尽管我只输入了一次下载的 http url,并且没有由我自己发起的重定向或其他第二个请求。
服务器的 access.log 也有同样的问题:
[14/May/2014:14:06:53 +0200]“GET /dev/test_test.m4v HTTP/1.1”206 1“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)Chrome/32.0.1700.107 Safari/537.36"
[14/May/2014:14:06:53 +0200]“GET /dev/test_test.m4v HTTP/1.1”200 130680“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)铬/32.0.1700.10
[14/May/2014:14:07:15 +0200]“GET /dev/test_test.m4v HTTP/1.1”206 1“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)Chrome/32.0.1700.107 Safari/537.36"
[14/May/2014:14:07:15 +0200]“GET /dev/test_test.m4v HTTP/1.1”200 114684“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)铬/32.0.1700.10
您可以看到,始终有一个请求的响应大小=1,而另一个请求的响应大小为混合大小,但>1。然而,浏览器中的结果始终是相同的。=> 响应中断,下载失败。
为了确保它与 http status/response 206 无关,我将其添加max_ranges 0;到配置中并重试 -> test2。
[14/May/2014:14:11:36 +0200]“GET /dev/test_test.m4v HTTP/1.1”200 152460“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)Chrome/32.0.1700.107 Safari/537.36"
[14/May/2014:14:11:38 +0200]“GET /dev/test_test.m4v HTTP/1.1”200 142296“-”“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,例如壁虎)Chrome/32.0.1700.107 Safari/537.36"
在浏览器中的结果相同。下载/请求总是失败,并且 access.log 中的大小总是不同,例如随机块或响应大小。
服务器状态:iowait、RAM、CPU 几乎空闲。没有高负载或限制。
这是一个已知问题或错误吗?或者您知道如何解决这个问题吗?
对于这样简单的场景,我很确定您的 nginx 服务器前面有防火墙、IDS/IPS 设备或其他东西会干扰下载。如有疑问,请联系您的 ISP。
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |