我有 Nginx 1.18(未 dockerized)来在 Ubuntu 20.04 上托管 REST API 应用程序(在 Docker 容器中运行),并且我尝试设置proxy_request_buffering
允许使用流式传输上传大文件。这是我的服务器块:
server {
server_name mydomain;
location ~ ^/(api|static\-data|static\-files)/ {
proxy_pass http://127.0.0.1:5001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
proxy_request_buffering off;
client_max_body_size 1000m;
client_body_buffer_size 1000m;
}
}
但它对我来说不起作用。
除了上传 API,我还有另一个 API 来显示进度。当上传 API 处于待处理状态时,进度 API 的响应显示,我的应用程序在文件被 Nginx 完全缓冲之前不会收到上传请求。因此,我的后端应用程序完全接收文件,而在客户端,进度条显示零百分比,直到整个文件上传完毕。
顺便说一句,当我使用 Kestrel 进行本地测试时,一切都正常。有什么想法吗?