一、问题描述

最近现场实施人员反馈有个功能不能正常使用,F12查看浏览器的控制台,提示net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)的错误,

HTTP状态码206表示“部分内容”(Partial Content),表示服务器成功处理了部分客户端的请求。通常情况下,这个状态码是在客户端通过HTTP Range头部请求部分资源时返回的。如果服务器不支持范围请求的话,下面几个原因可能会导致这个问题出现

二、问题原因

  1. 服务器的磁盘满了,导致应用不能正常使用
  2. nginx缓存文件读取时没有权限(Permission denied)
  3. 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) 报错相关推荐

  1. 浏览器 net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) 报错解决方案

    1.nginx两层代理页面加载不出来 nginx一层代理正常,两层代理页面加载不出来,F12查看开发者模式发现报以下错误: net::ERR_CONTENT_LENGTH_MISMATCH 206 ( ...

  2. Nginx服务器js加载不全,报206 (Partial Content)错误

    问题场景 tornado服务器,配置SLB+Nginx通过80端口访问tornado服务器的时候发现前端很多比较大的js加载不完,出现报206 (Partial Content)错误(部分内容)服务器 ...

  3. HTTP断点续传原理 状态码206 Partial Content

    HTTP断点续传 断点续传就是从文件上次中断的地方开始重新下载或上传,当下载或上传文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会去重头下载,这样很浪费时间.所以断点续传 ...

  4. html状态码206,详解浏览器 206 状态码206 Partial Content

    HTTP 206 Partial Content成功状态响应代码指示请求已成功并且主体包含所请求的数据范围,如Range请求标题中所述. 如果只有一个范围,则整个响应Content-Type设置为文档 ...

  5. VW适配方案后造成伪类使用content报错的解决办法 already has a 'content' property, give up to overwrite it.

    配置.postcssrc.js的postcss-viewport-units: 'postcss-viewport-units': {filterRule: rule => rule.selec ...

  6. restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type

    报错信息: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no sui ...

  7. 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 ...

  8. 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 ...

  9. composer安装Workerman报错:Installation failed, reverting ./composer.json to its original content....

    今天想在TP5上安装workerman,实现一个后台消息提醒功能. 第一步就卡住了,根据手册里说的首先通过composer安装 $ composer require topthink/think-wo ...

最新文章

  1. 4、jQuery实现的全选、反选和不选功能
  2. Spring MVC 基础
  3. 13.Java为什么不支持多继承
  4. MOCTF-Web-访问限制
  5. 201671010435-王潇-实验四附加实验-项目互评
  6. python泰坦尼克号数据预测_使用python预测泰坦尼克号生还
  7. Linux内存管理:为什么 Linux 需要虚拟内存?为什么 Linux 默认页大小是 4KB?
  8. html dw map,DW十六 map标签
  9. 测试流程 - 关于用例评审,给你的 9 点建议
  10. pythonos模块怎么设置_Python OS模块如何使用?
  11. leetcode 12 Integer to Roman
  12. 设计模式 ( 二 ) 简单工厂模式
  13. MySQL和数据库可视化工具的下载与安装
  14. FileUpload1.PostedFile.FileName取不到完整路径
  15. 职称计算机 河南,2017年河南职称计算机报名入口
  16. Siggraph三角网格变形之拉普拉斯变换
  17. word2vec总结
  18. Java - JIT即时编译器
  19. LeetCode报错: “runtime error: member access within null pointer of type ‘struct ListNode”
  20. 戏说python模块

热门文章

  1. Learning to Rank with Nonsmooth Cost Functions
  2. java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据
  3. HP大中华区总裁孙振耀退休感言(同勉)
  4. 另一种收入--被动收入攻略
  5. 大规模实时分位数计算——Quantile Sketches 简史
  6. 没所谓移动开发寒冬,不过是大鱼吃小鱼,sharedpreferences原理
  7. 基于GSM模块电瓶车防盗系统
  8. Windows服务器重启IIS的四个方法
  9. r语言 转录本结构及丰度_肠道菌群:宏转录组测序分析流程解读
  10. oracle数据库instr用法,postgresql instr函数功能实现(实现oracle plsql instr相同功能)