Node.js 带有NGINX proxy\u pass的网页包开发服务器

Node.js 带有NGINX proxy\u pass的网页包开发服务器,node.js,nginx,websocket,webpack,webpack-dev-server,Node.js,Nginx,Websocket,Webpack,Webpack Dev Server,我试图让webpack dev server在Docker容器中运行,然后通过NGINX主机访问它。初始index.html已加载,但与开发服务器的Web套接字连接无法连接 VM47:35到“ws://example.com/sockjs-node/834/izehemiu/WebSocket”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:400 我正在使用以下配置 map $http_upgrade $connection_upgrade { default

我试图让
webpack dev server
在Docker容器中运行,然后通过NGINX主机访问它。初始
index.html
已加载,但与开发服务器的Web套接字连接无法连接

VM47:35到“ws://example.com/sockjs-node/834/izehemiu/WebSocket”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:400

我正在使用以下配置

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

upstream webpack_dev_server {
  server node;
}

server {
  server_name _;
  listen 80;
  root /webpack_dev_server;

  location / {
    proxy_pass http://webpack_dev_server;
  }

  location /sockjs-node/ {
    proxy_pass http://webpack_dev_server/sockjs-node/;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;  # pass the host header - http://wiki.nginx.org/HttpProxyModule#proxy_pass

    proxy_http_version 1.1;  # recommended with keepalive connections - http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

    # WebSocket proxying - from http://nginx.org/en/docs/http/websocket.html
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
  }
}

代理通行证应该是您的网页开发服务器容器的ip和端口,您需要
Proxy\u重定向关闭

location /sockjs-node {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;

    proxy_pass http://node:8080; 

    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
另外,不要忘记将轮询添加到您的Web包开发中间件中

  watchOptions: {
    aggregateTimeout: 300,
    poll: 1000
  }

我在HTTPS服务器上做了更多的工作,遇到了一些问题,解决了这些问题,并在这里发布了答案:这将对通过本文的其他人有所帮助。我也遇到过类似的问题(nx.dev+React+nginx),并且
proxy\u重定向
。更重要的是,它可能是错误的,并导致无效的重定向。