net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 报错
一、问题描述
最近现场实施人员反馈有个功能不能正常使用,F12查看浏览器的控制台,提示net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)的错误,
HTTP状态码206表示“部分内容”(Partial Content),表示服务器成功处理了部分客户端的请求。通常情况下,这个状态码是在客户端通过HTTP Range头部请求部分资源时返回的。如果服务器不支持范围请求的话,下面几个原因可能会导致这个问题出现
二、问题原因
- 服务器的磁盘满了,导致应用不能正常使用
- nginx缓存文件读取时没有权限(Permission denied)
- nginx的代理缓存区太小
三、问题解析及解决方案
1、 服务器的磁盘满了,导致应用不能正常使用
(1)df -h 命令查看磁盘的使用情况(2)进入根路径,使用 du -sh * 命令查看哪个文件夹占用多(3)发现usr文件夹占用最多,进入usr文件夹,再次执行 du -sh * 查询usr文件夹下占用大的文件夹,以此类推(4)最终查到占用空间最大的文件,根据自己的实际情况进行删除无用的文件
df -h
2、nginx缓存文件读取时没有权限(Permission denied)
在单独打开hearder中css,js的网络地址是能打开的,所以排除了最简单的地址错误。前端项目是由nginx代理的,所以可以查看nginx的日志,进入${NGINX_HOME}\logs,查看error.log,得到如下信息:
[crit] 275197#0: *1543 open() “/usr/local/nginx/proxy_temp/4/30/0000000304” failed (13: Permission denied) while reading upstream
(1)proxy_temp文件夹是什么,做什么用的
Nginx通过代理缓存(proxy cache)提高了其反向代理服务器的性能。proxy cache是一种将反向代理服务器的响应缓存在本地磁盘上的技术,可以缓解上游服务器的压力并提高客户端的访问速度。
为了实现proxy cache功能,Nginx需要将代理服务器响应的数据写入本地磁盘上的临时文件。这些临时文件存储在proxy_temp文件夹中,以便于Nginx进行管理和维护。
proxy_temp文件夹中的临时文件由Nginx自动管理,当缓存不再需要时,Nginx会自动将其删除,以避免占用过多的磁盘空间。
(2)进入/usr/local/nginx/proxy_temp 文件夹,查看文件夹权限和nginx的用户
发现proxy_temp 文件夹的所有者是nobody用户,nginx是root用户
修改nginx配置文件,声明使用者
1、打开Nginx配置文件。默认情况下,Nginx配置文件位于/etc/nginx/nginx.conf。
2、在配置文件中找到“worker_processes”行,该行设置了工作进程的数量。在此行下面添加以下内容:
user yourusername;
其中,yourusername是您要用于运行Nginx的用户名。
3、保存并关闭文件。
4、检查Nginx配置文件是否存在语法错误。可以使用以下命令:
nginx -t
如果配置文件没有语法错误,将输出“nginx: configuration file /etc/nginx/nginx.conf test is successful”。
5、重启Nginx服务以使配置更改生效。可以使用以下命令:
sudo systemctl restart nginx
现在,Nginx将使用您指定的用户名来运行。
3、nginx的代理缓存区太小
在nginx.conf.js文件的http配置添加下面三行代码,然后保存重启nginx即可
proxy_buffer_size 128k;
proxy_buffers 32 128k;
proxy_busy_buffers_size 128k;
具体解析:
(1)proxy_buffer_size: 这个指令设置单个代理缓冲区的大小。它用于指定Nginx在向客户端发送响应之前缓冲区中存储的最大字节数。默认情况下,这个值为4K。
例如,如果您将proxy_buffer_size设置为128k,当Nginx代理从上游服务器接收响应时,它将使用最大128K的缓冲区存储响应,然后将其发送到客户端。
(2)proxy_buffers: 这个指令设置代理缓冲区的数量和大小。代理缓冲区是一种用于存储从上游服务器接收到的响应的内存区域。proxy_buffers指令由两个参数组成:缓冲区数量和每个缓冲区的大小。默认情况下,Nginx使用8个缓冲区,每个缓冲区大小为4K。
例如,如果您将proxy_buffers设置为32 128k,Nginx将使用32个缓冲区,每个缓冲区大小为128K。
(3)proxy_busy_buffers_size: 这个指令设置代理缓冲区中可用于存储响应的最大字节数。当Nginx在向客户端发送响应时,它将从代理缓冲区中取出缓冲区,如果缓冲区大小小于proxy_busy_buffers_size,则Nginx将尝试从上游服务器获取更多的响应,并将其存储在另一个缓冲区中。
例如,如果您将proxy_busy_buffers_size设置为128k,当Nginx代理使用缓冲区向客户端发送响应时,它将从代理缓冲区中取出缓冲区,并且只有在缓冲区大小小于128K时,Nginx才会从上游服务器获取更多的响应。
需要注意的是,这些代理缓冲区配置项可以根据具体情况进行调整,以达到最佳的性能和资源利用率。
net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 报错相关推荐
- 浏览器 net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 报错解决方案
1.nginx两层代理页面加载不出来 nginx一层代理正常,两层代理页面加载不出来,F12查看开发者模式发现报以下错误: net::ERR_CONTENT_LENGTH_MISMATCH 206 ( ...
- Nginx服务器js加载不全,报206 (Partial Content)错误
问题场景 tornado服务器,配置SLB+Nginx通过80端口访问tornado服务器的时候发现前端很多比较大的js加载不完,出现报206 (Partial Content)错误(部分内容)服务器 ...
- HTTP断点续传原理 状态码206 Partial Content
HTTP断点续传 断点续传就是从文件上次中断的地方开始重新下载或上传,当下载或上传文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会去重头下载,这样很浪费时间.所以断点续传 ...
- html状态码206,详解浏览器 206 状态码206 Partial Content
HTTP 206 Partial Content成功状态响应代码指示请求已成功并且主体包含所请求的数据范围,如Range请求标题中所述. 如果只有一个范围,则整个响应Content-Type设置为文档 ...
- VW适配方案后造成伪类使用content报错的解决办法 already has a 'content' property, give up to overwrite it.
配置.postcssrc.js的postcss-viewport-units: 'postcss-viewport-units': {filterRule: rule => rule.selec ...
- restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type
报错信息: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no sui ...
- Maven报错解决:Element 'dependency' cannot have character [children], because the type's content type is
在用maven的时候遇到报错: Element 'dependency' cannot have character [children], because the type's content ty ...
- mybatis项目启动报错 The content of element type resultMap must match (constructor?,id*,result*,associat...
启动项目报错 2018-02-26 17:09:51,535 ERROR [org.springframework.web.context.ContextLoader] - Context initi ...
- composer安装Workerman报错:Installation failed, reverting ./composer.json to its original content....
今天想在TP5上安装workerman,实现一个后台消息提醒功能. 第一步就卡住了,根据手册里说的首先通过composer安装 $ composer require topthink/think-wo ...
最新文章
- 4、jQuery实现的全选、反选和不选功能
- Spring MVC 基础
- 13.Java为什么不支持多继承
- MOCTF-Web-访问限制
- 201671010435-王潇-实验四附加实验-项目互评
- python泰坦尼克号数据预测_使用python预测泰坦尼克号生还
- Linux内存管理:为什么 Linux 需要虚拟内存?为什么 Linux 默认页大小是 4KB?
- html dw map,DW十六 map标签
- 测试流程 - 关于用例评审,给你的 9 点建议
- pythonos模块怎么设置_Python OS模块如何使用?
- leetcode 12 Integer to Roman
- 设计模式 ( 二 ) 简单工厂模式
- MySQL和数据库可视化工具的下载与安装
- FileUpload1.PostedFile.FileName取不到完整路径
- 职称计算机 河南,2017年河南职称计算机报名入口
- Siggraph三角网格变形之拉普拉斯变换
- word2vec总结
- Java - JIT即时编译器
- LeetCode报错: “runtime error: member access within null pointer of type ‘struct ListNode”
- 戏说python模块
热门文章
- Learning to Rank with Nonsmooth Cost Functions
- java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据
- HP大中华区总裁孙振耀退休感言(同勉)
- 另一种收入--被动收入攻略
- 大规模实时分位数计算——Quantile Sketches 简史
- 没所谓移动开发寒冬,不过是大鱼吃小鱼,sharedpreferences原理
- 基于GSM模块电瓶车防盗系统
- Windows服务器重启IIS的四个方法
- r语言 转录本结构及丰度_肠道菌群:宏转录组测序分析流程解读
- oracle数据库instr用法,postgresql instr函数功能实现(实现oracle plsql instr相同功能)