node.js – Express和nginx net :: ERR_CONTENT_LENGTH_MISMATCH

前端之家收集整理的这篇文章主要介绍了node.js – Express和nginx 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;

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

猜你在找的Nginx相关文章