我正在开发一个基于Express的网站,并通过nginx代理进行访问。有时,当我在浏览器中加载页面时,会出现以下情况:
GET http://myapp.local/css/bootstrap.css net::ERR_CONTENT_LENGTH_MISMATCH
如果我刷新页面,它通常会消失。但是如果一遍又一遍地刷新,它就会再次出现。
问题出在哪里?有什么方法可以缩小问题范围吗?这是我的此服务器上的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地址和Node端口访问网站:http://10.10.10.10:8080
,那么我永远不会遇到错误。但是如果我使用代理后的虚拟主机访问:http://myapp.local
,我最终会遇到错误(也许每10次中有1次)。
/var/log/nginx/*
)中使用grep命令查找所有涉及bootstrap.css
的请求。此外,可以参考这个serverfault答案,使用return
关键字来实现更好的rewrite
风格(该答案是关于https
的,但同样适用于从url中删除www.
)。 - grochmal