node.js – Express和nginx net :: ERR_CONTENT_LENGTH_MISMATCH

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

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

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;
  }
}
@H_404_7@

这肯定与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;

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

相关文章

一、Linux下Nginx的安装 1.去官网 http://nginx.org/download/下载对应的Nginx安装包,推荐使...
一、空格:默认匹配、普通匹配 location / { root /home; } 二、= :精确匹配(表示匹配到 /home/resou...
``` nginx -c 配置文件路径 ``` ``` /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.con...
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特...
1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄...
博客园从今天上午就开始报502错误 , 他的原因还不知道 , 暂时先说下我们遇到502的排查情况 最大的可能性...