c# - Nginx 连接超时问题中的 Asp.net Core 大文件上传
问题描述
我在 Digital Ocean 10$ Ubuntu Droplet 中运行 Asp.net 核心应用程序,上传多个或大文件时出现问题,一段时间后连接断开,不知道该怎么做是我的代理设置:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 1000m;
client_body_buffer_size 1000m;
uwsgi_read_timeout 1000s;
proxy_connect_timeout 90;
proxy_send_timeout 100;
proxy_read_timeout 100s;
fastcgi_send_timeout 1000s;
fastcgi_read_timeout 1000s;
proxy_buffers 32 4k;
解决方案
你有没有试过这个行动:
[RequestSizeLimit(1024*1024*100)]
public IActionResult Post(){
}
或 Program.cs 用于全局设置
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = 1024*1024*100; //100MB
});
}
或者这个来自中间件
app.UseWhen(context => context.Request.Path.StartsWithSegments("/api"), appBuilder =>
{
context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = null;
//TODO: take next steps
});
推荐阅读
- laravel - Laravel 多表连接:如何将两个表与所有列和一列除外
- sql - 找出emp的签入和签出时间,谁在一分钟内签入和签出
- linux - bash vs 函数调用中的命令替换
- r - 读取具有异常分隔符的文本文件
- maven - 通过maven运行时黄瓜测试的duplicateStepDefinition错误
- java - 关于电话身份验证的 Firebase 身份验证问题
- java - JUnit4 - @Before 注释方法中的 @Autowired 服务为空
- laravel - Laravel Nova:从选择字段中默认选择选项
- mysql - 多个 ORDER BY
- karate - 空手道不能断言 XML 响应包含 XPath