You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Nginx虚拟主机部署Vue.js应用时遇Invalid Host header错误求助

解决Vue.js应用Nginx代理的Invalid Host header错误

嘿,这个问题我太熟了!Vue CLI的开发服务器默认有个主机校验机制,防止恶意的DNS劫持请求,所以当你通过自定义域名(比如vue.vavenger.local)用Nginx代理访问时,就会触发这个错误。下面给你两种靠谱的解决方案:

方案一:修改Vue项目配置,允许自定义域名

在你的Vue项目根目录下创建或修改vue.config.js文件,添加allowedHosts配置,把你的自定义域名加进去:

module.exports = {
  devServer: {
    allowedHosts: [
      'vue.vavenger.local' // 这里填你的自定义域名
    ]
  }
}

这个方法是官方推荐的,既安全又精准,只允许你指定的域名访问开发服务器。

方案二:修改Nginx配置,传递正确的Host头

如果不想改Vue项目配置,也可以在Nginx的虚拟主机配置里,给代理请求加上正确的Host头,让Vue开发服务器识别到合法的主机。修改你的/usr/local/etc/nginx/servers/vue.vavenger.local.conf里的location /块:

location / {
    proxy_pass http://vuejs_app;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

添加proxy_set_header Host $host;这行是关键,它会把请求的Host头(也就是vue.vavenger.local)原样传递给后端的Vue开发服务器,这样校验就会通过了。

最后一步:重启服务

不管用哪种方案,都需要:

  • 重启Vue开发服务器,让项目配置生效
  • 重启Nginx,让Nginx配置生效:sudo nginx -s reload

哦对了,别用disableHostCheck: true这种方式,虽然能快速解决,但会关闭主机校验,有安全风险,开发环境也不推荐长期用。

内容的提问来源于stack exchange,提问作者nguyen anhtuan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:39:28