我有一个.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响应。
答案 0 :(得分:2)
回答我自己的问题。问题在于"保持活力"正在处理文件上载的WebApi的连接头。
我正在开发的项目使用Websockets和WebApis。通常这两件事情不会在一起 - websocket代码需要一个持续的服务器连接(通过"保持活跃"标题)而webapi不是。 WebApi的响应从来没有因为" keep alive"头。我创建了一个规则来将WebApi流量视为正常非 - "保持活跃"问题解决了。