我有一个简单的电影文件(mkv),我通过nginx发送。
我的Nginx配置如下
user nginx;
worker_processes auto;
worker_rlimit_nofile 300000;
events {
worker_connections 16000;
use epoll;
accept_mutex on;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip off;
access_log off;
keepalive_timeout 10;
client_max_body_size 0;
server {
listen 5050;
index index.html index.htm;
root /var/www/;
server_tokens off;
chunked_transfer_encoding off;
if ( $request_method !~ ^(GET|POST)$ ) {
return 200;
}
}
}
如果我尝试从快速连接下载电影(例如使用服务器中的wget),则电影正在成功下载。
如果我尝试使用较慢的连接来获取电影,例如使用带有-re参数的ffmpeg(本机帧),它将只下载电影的一半。当然,如果我使用wget并将下载速度调整为远低于正常速度,则会发生同样的情况。
nginx的连接在一段时间后关闭但没有发送整个文件,我不明白为什么会发生这种情况以及为什么如果我有快速连接就不会发生这种情况。
修改
i完全编辑我的帖子,因为在运行一些测试之后我发现问题来自NGINX,而不是来自PHP,因为直接从nginx获取电影后连接仍然关闭。