我正在尝试向30多个客户端同时提供单个高分辨率视频。这导致瓶颈,导致一些客户端超时,一些客户端体验到相当大的延迟。
现在 - 很明显每个单独的请求都在单独处理,因此服务器正在发送许多GB / s。有人提到可能可以配置Nginx以识别所有请求均为同一资产,仅提供一次服务,然后让路由器(我们在本地运行此服务器)将文件发送到所有设备。
这可行吗?还是有其他方法可以增加我的吞吐量?
这是我每个请求的配置。到目前为止非常简单...
现在 - 很明显每个单独的请求都在单独处理,因此服务器正在发送许多GB / s。有人提到可能可以配置Nginx以识别所有请求均为同一资产,仅提供一次服务,然后让路由器(我们在本地运行此服务器)将文件发送到所有设备。
这可行吗?还是有其他方法可以增加我的吞吐量?
这是我每个请求的配置。到目前为止非常简单...
upstream unicorn {
server unix:/tmp/unicorn.todo.sock fail_timeout=0;
}
server {
listen 80 default;
root /usr/local/var/rails/todo-after/public;
try_files $uri/index.html $uri $uri/video @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}