为Kestrel AspNet5运行Nginx代理

时间:2016-02-16 15:04:56

标签: curl nginx asp.net-web-api proxy kestrel-http-server

我在运行Nginx服务器以向Kestrel代理请求时遇到了一些麻烦。在Kestrel,我可以看到响应相对较快,由于某种原因,Nginx因等待超时而无法返回响应。

这是我的代理conf:

server {
 listen   80;
 server_name    192.168.163.143;
 access_log     /var/log/nginx/mydomain.access.log;
 location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
        proxy_pass      http://127.0.0.1:5000;
 }
}

ngic.conf:

worker_processes 1;
events{
worker_connections 768;
}

我使用默认参数运行kestrel以在端口5000上运行应用程序。

从浏览器192.168.163.143请求它直到超时才返回json。

我试过卷曲我的端点,我发现的是: 直接红隼调用一次返回整批数据,而Nginx调用返回json的一部分并且卡住......

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,解决方案非常简单。 Kestrel的RC1无法使用闭合连接,因此您必须保持连接状态。

在您的代理配置的位置部分,添加proxy_set_header Connection ""