【问题标题】:NGINX + Kestrel - Can't upload files in multipart/formdataNGINX + Kestrel - 无法在 multipart/formdata 中上传文件
【发布时间】:2017-11-20 17:37:34
【问题描述】:

我有一个 .NET Core 应用程序,它有一个用于上传文件的表单。它在 IIS 中运行良好,但是当我在 Ubuntu 上部署到 Nginx(作为反向代理)时,文件上传超时或导致网关错误。我无法看到我可以在哪里进一步调查问题,nginx 访问日志和 Kestrel 的输出不是很有帮助。

这是我的 nginx 配置,我怀疑它没有将数据传递给 Kestrel

location / {
    proxy_pass http://dotnet;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Connection keep-alive;

令人沮丧的是,尽管给出了 504 并且需要 60 秒才能完成一个小文件的上传操作,但该文件仍然会到达服务器。

我缺少什么 nginx 配置选项?我怀疑红隼没有向 nginx 提供 http 响应。

【问题讨论】:

    标签: nginx asp.net-core-1.1 kestrel


    【解决方案1】:

    回答我自己的问题。问题在于处理文件上传的 WebApi 的“保持活动”连接标头。

    我正在进行的项目使用 Websockets 和 WebApis。通常,这两件事不会一起发生 - websocket 代码需要一个持续的服务器连接(通过“保持活动”标头),而 webapi 不需要。由于“保持活动”标头,WebApi 响应从未有过。我创建了一条规则,将 WebApi 流量视为正常的非“保持活动状态”,问题自行解决。

    【讨论】:

    • 我也遇到了同样的问题,能否给个配置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 2021-02-21
    • 2023-01-23
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多