Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx post请求与ng flow和Express(Node.js)挂起_Node.js_Express_Nginx_Flow Js_Ng Flow - Fatal编程技术网

Nginx post请求与ng flow和Express(Node.js)挂起

Nginx post请求与ng flow和Express(Node.js)挂起,node.js,express,nginx,flow-js,ng-flow,Node.js,Express,Nginx,Flow Js,Ng Flow,我在使用ng-flow、NodeJS和Express进行开发时没有遇到任何问题,尽管我无法将Nginx正确配置为反向代理,以使其在使用ng-flow和Express时平稳运行 在这里,您将找到一个获得挂起状态的请求示例: Remote Address:192.168.0.81:80 Request URL:http://itl.lan/api/v1/flow-upload/ Request Method:POST Status Code:200 OK Response Headers view

我在使用ng-flow、NodeJS和Express进行开发时没有遇到任何问题,尽管我无法将Nginx正确配置为反向代理,以使其在使用ng-flow和Express时平稳运行

在这里,您将找到一个获得挂起状态的请求示例:

Remote Address:192.168.0.81:80
Request URL:http://itl.lan/api/v1/flow-upload/
Request Method:POST
Status Code:200 OK
Response Headers
view source
Cache-Control:private, no-cache, no-store, must-revalidate
Connection:close
Date:Mon, 03 Aug 2015 20:24:56 GMT
Expires:-1
Pragma:no-cache
X-Powered-By:Express
Request Headers
view source
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,it;q=0.6
App-Session-Hash:df9b1ac0-3a10-11e5-af61-af8fb284004c
Connection:keep-alive
Content-Length:1049741
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryY2FVUSE0oIcye77i
Host:itl.lan
Origin:http://itl.lan
Referer:http://itl.lan/webapp/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36
Request Payload
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowChunkNumber"

9
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowChunkSize"

1048576
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowCurrentChunkSize"

1048576
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowTotalSize"

12515925
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowIdentifier"

12515925-showcase_001_20150802T2239tgz
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowFilename"

showcase_0.0.1_20150802T2239.tgz
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowRelativePath"

showcase_0.0.1_20150802T2239.tgz
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="flowTotalChunks"

11
------WebKitFormBoundaryY2FVUSE0oIcye77i
Content-Disposition: form-data; name="file"; filename="showcase_0.0.1_20150802T2239.tgz"
Content-Type: application/x-compressed-tar
以下是我在NGINX server.conf中的指令:

upstream itl_node_app {
    server 127.0.0.1:5000;
    keepalive 8;
}

server  {
...

    location /api/v1/flow-upload/ {
      proxy_set_header Access-Control-Allow-Origin *;
      proxy_set_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
      proxy_set_header 'Access-Control-Allow-Headers' 'X-Requested-With,Accept,Content-Type, Origin$

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://itl_node_app;
      proxy_redirect off;
    }
}
检查nginx error.log,您会发现:

2015/08/03 22:34:28 [error] 8004#0: *792 upstream sent no valid HTTP/1.0 header while reading response header from upstream, client: 192.168.0.4, server: itl.lan, request: "POST /api/v1/flow-upload/ HTTP/1.1", upstream: "http://127.0.0.1:5000/api/v1/flow-upload/", host: "itl.lan", referrer: "http://itl.lan/webapp/"
谢谢你的帮助

干杯,
Luca

日志NGINX表示HTTP头无效,请检查express.js上此路由中定义的控制器:

/api/v1/flow-upload/
如果响应中发送的状态为数字

我希望这有帮助

我编写了Express.js“/api/v1/flow upload/”路由,以节点示例应用程序为模型,您可以找到它。我描述的问题突然出现了。状态参数可能是字符串文字。我学到了Nginx比Express更严格地管理它的艰难方法,这导致了错误

一个简单而安全的方法就是通过,例如:

res.status(200).send();

我昨天已经发现并解决了这个问题,尽管我忘了回答我自己的问题。你的答案指向正确的方向,因此我给你荣誉。谢谢