加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

node.js – Express和nginx net :: ERR_CONTENT_LENGTH_MISMAT

发布时间:2020-12-13 21:29:14 所属栏目:Nginx 来源:网络整理
导读:我正在开发一个Express驱动的站点,它正在通过nginx代理.有时在浏览器中加载页面时,我会得到: GET http://myapp.local/css/bootstrap.css net::ERR_CONTENT_LENGTH_MISMATCH 如果我刷新页面,它通常会消失.但如果一遍又一遍地刷新,它会再次出现. 这里有什么问

我正在开发一个Express驱动的站点,它正在通过nginx代理.有时在浏览器中加载页面时,我会得到:

GET http://myapp.local/css/bootstrap.css net::ERR_CONTENT_LENGTH_MISMATCH

enter image description here

如果我刷新页面,它通常会消失.但如果一遍又一遍地刷新,它会再次出现.

这里有什么问题?我该怎么做才能缩小这个问题的范围?这是我的服务器的nginx配置:

server {
  listen 80;
  server_name www.myapp.local;
  rewrite ^(.*) http://myapp.local$1 permanent;
}

server {
  listen 80;
  server_name myapp.local;

  access_log /vagrant/nginx/logs/myapp.local/access.log;
  error_log /vagrant/nginx/logs/myapp.local/error.log;

  location / {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

这肯定与nginx代理有关.因为如果我只使用IP地址和节点端口访问该站点:http://10.10.10.10:8080那么我从来没有得到错误.但是如果我使用代理vhost访问它:http://myapp.local那么我最终会得到错误(也许我有十分之一的机会看到它).

最佳答案
net :: ERR_CONTENT_LENGTH_MISMATCH是一个缓存问题.如果满足某些条件(在你的情况下是$http_upgrade),你告诉Nginx绕过缓存.

您应该在某个配置文件中为nginx指定缓存位置.快速修复将删除此文件夹的内容,重新启动nginx,然后再次尝试访问该站点.以缓存为代价的另一个快速解决方法是删除行proxy_cache_bypass $http_upgrade;

如果您提供有关缓存设置的更多详细信息,则可能会改进此答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读