请求将nginx反向代理挂起到docker上的ASP.NET 5 Web应用程序

我试图让Nginx,ASP.NET 5,Docker和Docker Compose在我的开发环境中一起工作,但到目前为止我看不到它的工作原理. This是我现在的状态,让我在这里简要解释一下.

我有以下docker-compose.yml文件

webapp:
  build: .
  dockerfile: docker-webapp.dockerfile
  container_name: hasample_webapp
  ports:
    - "5090:5090"

Nginx:
  build: .
  dockerfile: docker-Nginx.dockerfile
  container_name: hasample_Nginx
  ports:
    - "5000:80"
  links:
    - webapp:webapp

docker-Nginx.dockerfile文件

FROM Nginx
copY ./Nginx.conf /etc/Nginx/Nginx.conf

和docker-webapp.dockerfile文件

FROM microsoft/aspnet:1.0.0-rc1-update1

copY ./WebApp/project.json /app/WebApp/
copY ./NuGet.Config /app/
copY ./global.json /app/
workdir /app/WebApp
RUN ["dnu", "restore"]
ADD ./WebApp /app/WebApp/

EXPOSE 5090
ENTRYPOINT ["dnx", "run"]

Nginx.conf文件

worker_processes 4;

events { worker_connections 1024; }

http {
    upstream web-app {
        server webapp:5090;
    }

    server {
      listen 80;

      location / {
        proxy_pass http://web-app;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
      }
    }
}

一切都很好,当我运行docker-compose时,它会启动并运行两个容器,这也很不错.从主机,当我点击localhost:5000时,请求只是挂起,当我终止请求时,Nginx通过docker compose写出一个日志,指示499 HTTP响应.

知道我在这里可能缺少什么吗?

更新:

我在ASP.NET 5应用程序中添加了一些日志记录,当我点击localhost:5000时,我可以验证请求是否正在发送到ASP.NET 5,但它会立即终止,从200响应中判断出健康的响应.然后,Nginx坐在它上面我通过客户端终止请求.

enter image description here

解决方法:

这是Kestrel RC1:https://github.com/aspnet/KestrelHttpServer/issues/341中的已知错误

你可以通过强制连接来解决它:keep-alive:

proxy_set_header Connection keep-alive;

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...