当前位置: 首页 > 知识库问答 >
问题:

带有NGINX proxy_pass的Webpack开发服务器

仉梓
2023-03-14

我试图让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;
  }
}

共有1个答案

南门建章
2023-03-14

代理传递应该是webpack-dev-server容器的ip和端口,并且需要proxy_redirect off;

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";
}

另外,不要忘记将轮询添加到webpack-dev中间件中

  watchOptions: {
    aggregateTimeout: 300,
    poll: 1000
  }
 类似资料:
  • 我有两个docker容器由docker compose管理,似乎无法正确使用webpack将某些请求代理到后端api。 docker-compose.yml: 服务web是一个简单的react应用程序,由webpack开发服务器提供服务。服务返回是一个节点应用程序。 我没有问题从我的主机访问任何应用程序: 我还可以从web容器ping和curl back服务: 但是我有一个问题与代理。Webpac

  • 问题内容: 我的单页应用程序在webpack-dev- server上运行。我可以在上加载和重新加载我的进入路线,并且每次都可以使用。但是我只能通过应用程序内的链接加载,即每当我从浏览器刷新按钮重新加载时,我都会 作为服务器响应,在控制台上我得到 内容安全策略:页面的设置禁止自行加载资源(“ default-src http:// localhost:8080 ”)。来源:;(function i

  • 我已经在React中构建了我的应用程序,在通过webpack-dev-server在生产版本中测试它之后,调用API的不可能性就显现出来了。我正在通过AXIOS提出请求。 GET请求发生以下错误: 得到http://localhost:8080/api/web/api/get-记录的导航条404(未找到) 对于 POST 请求,它不会触发操作。 即使我为请求使用了正确的路径。 我的应用的重要文件夹

  • 下面是我的package.json,如果需要的话,我使用了vscode: {“名称”:“pro-lyrics”、“版本”:“1.1.0”、“说明”:“”、“main”:“index.js”、“脚本”:{“build”:“webpack”、“start:dev”:“webpack serve”、“test”:“echo”错误:未指定测试“&&exit 1”}、“author”:“”license“:

  • 我开始在我的公司和中科院合作。这对我来说是全新的,所以我不得不阅读大量的文档,以及如何了解CAS是如何工作的。 因此,我们必须在服务器上为具有两种不同应用程序的公司提供单一登录服务。其中一个使用SAML2。我的CAS服务器现在正在使用MySQL数据库,因此我将让数据库中这两个应用程序的用户提供身份验证服务。 我不清楚的是关于SAML。我读过的所有关于SAML2与CAS 4.0.0集成的教程都使用了

  • 我开始构建一个基于React,TypeScript和Webpack的小应用程序。我关注了这篇文章:https://www.typescriptlang.org/docs/handbook/react- 所有来源都存储在GitHub回购:https://github.com/aszmyd/webpack-react-typescript-bug 问题是: 当我启动webpack dev server