运行 React App 时出现“无效的主机标头”

IT技术 reactjs deployment webpack react-router webpack-dev-server
2021-05-19 14:56:08

我有一个简单的 React JS 项目,我正在部署到 OSE。此外,我在我的项目中使用了以下依赖项。

 "webpack": "^2.2.0",
 "webpack-dev-server": "^1.14.1",
 "react": "^15.5.4",
 "react-router-dom": "^4.1.1"

我也通过下面的构建脚本运行我的项目。

"build": "SET NODE_ENV=production && webpack-dev-server --host 0.0.0.0 --inline --history-api-fallback --content-base . "

在 OSE 中一切正常,Webpack 编译成功。但是在访问网址时,它会在网页上显示“无效的主机标头”。

任何人都可以帮助解决这个问题。React 中的一些新功能。

提前致谢。

4个回答

在您的 webpack 配置中,您可以disableHostCheck: truedevServer配置中添加例如,

devServer: {
  disableHostCheck: true
}

只是为了解释为什么会发生这种情况。

webpack-dev-server已经发布了v2.4.3

引用他们的补丁说明:

请求的 Host 标头必须匹配公共选项中提供的侦听地址或主机。确保在此处提供正确的值。

他们还包括disableHostCheck关闭此检查,但是

仅当您知道自己在做什么时才使用它。不建议。

配置 react 目标主机将修复“Invalid Host Header”错误

查找FQDN的您react的服务器,例如,如果您的服务器的FQDN是:my.devserver.com

将以下行添加到您的 .env 文件中:

HOST=my.devserver.com

重新启动 react 应用程序并在http://my.devserver.com:3000/访问它

如果需要从其他机器访问 my.devserver.com,请将此行添加到您的主机文件(基于 Unix 的系统上的 /etc/hosts):

0.0.0.0 my.devserver.com

如果您将其与 nginx 代理 + ssl / 和 docker 结合使用,我需要指定 HOST 和定制代理 var
https://github.com/plaid/quickstart/blob/master/frontend/src/setupProxy.js

我基本上需要告诉react HOST + 环境:

- REACT_APP_API_HOST=www.yourdomainhere.com
- HOST=frontend 


services:
  go:
    networks:
      - "quickstart"
    depends_on:
      - "frontend"
    image: "100418366104"
    ports: ["8000:8000"]

 
  frontend:
    environment:
      - REACT_APP_API_HOST=www.yourdomainhere.com # see above setupProxy.js file
      - HOST=frontend 
    networks:
      - "quickstart"
    image: "e478fc0620e6"
    ports: ["3000:3000"]
  nginx:
    networks:
      - "quickstart"
    build:
        dockerfile: ./nginx/Dockerfile
        context: .
    ports:
        - 80:80
        - 443:443
    depends_on:
        - frontend
networks:
  quickstart:
    name: quickstart