角度-具有用于https域的NGINX proxy_pass的Webpack开发服务器,原因:net :: ERR_CONNECTION_CLOSED

我已经设置了一个服务器,该服务器为前端和nodejs后端托管一个“ angular2-webpack-starter”项目. Nginx默认具有两个proxy_pass来将连接映射到服务器上的正确位置.几乎一切都按预期工作..但是sockjs-node / info代理存在问题,这确实让我感到惊讶.

运行时,我看到:

zone.js:1960 GET https://localhost:3000/sockjs-node/info?t=1490740454197 net::ERR_CONNECTION_CLOSED

这两个代理是:

  location ^~ /server/ {
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host      $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass https://127.0.0.1:9000/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

  location ^~ / {
    #proxy_buffering    off;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   Host      $host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:3000/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }

我已经查看了该问题的其他答案,但无济于事.我尝试在前端添加cors东西,这没有任何意义,并且没有任何效果.我尝试关闭proxy_buffering无济于事(正如我期望的那样).我什至还添加了“ underscored_in_headers;”在nginx中,无济于事.

其他人已经使用webpack-dev-server进行代理,但是似乎nginx应该可以轻松处理此问题,当我在没有webpack-dev-server的情况下投入生产时,我也会遇到同样的问题.

如果您遇到此问题或有想法,将非常感谢您的帮助.

最佳答案
花了一段时间,但我发现了问题.在开发过程中尝试在安全站点上运行时,其他人可能会受益.

问题是proxy_pass为’http://127.0.0.1:3000/‘.这会导致问题.

更改为:

proxy_pass https://127.0.0.1:3000/;

将webpack.dev.js中的devServer设置为:

  https: true,
  https: {
    key: fs.readFileSync('/etc/apache2/certwork/xxx.key'),
    cert: fs.readFileSync('/etc/apache2/certwork/xxx.crt'),
    ca: fs.readFileSync('/etc/apache2/certwork/ssl-bundle.crt')
  },

解决了这个问题.注意:https:true就足够了,但是我想使连接尽可能地被接受,因此我添加了密钥,cert,ca内容.

您仍然会看到:

enter image description here

在我的情况下:

enter image description here

由于与“ https://localhost:3000”的连接仍然与域名不匹配. IE浏览器.本地主机!== parke.dynazu.com.但是一切正常,当我离开webpack-dev-server时,这将不是问题.

转载注明原文:角度-具有用于https域的NGINX proxy_pass的Webpack开发服务器,原因:net :: ERR_CONNECTION_CLOSED - 代码日志