Q:浏览器打开控制台报错:net::ERR_CONTENT_LENGTH_MISMATCH 206
Posted on 2023-08-12 16:57 三年三班王小朋 阅读(1751) 评论(0) 编辑 收藏 举报一、问题描述
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)最终查到占用空间最大的文件,根据自己的实际情况进行删除无用的文件
2、nginx缓存文件读取时没有权限(Permission denied)【我的是这个的问题,改了以后就好了!!!】
在单独打开hearder中css,js的网络地址是能打开的,所以排除了最简单的地址错误。前端项目是由nginx代理的,所以可以查看nginx的日志,进入${NGINX_HOME}\logs,查看error.log,得到如下信息:
(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,注释掉user nobody;
其中,Nginx的用户名可以自定义。此处示例root用户启动nginx
#user nobody;
user root;
2、将nginx路径下所有文件所有者改成root用户(示例root用户)
chown -R root:root /usr/local/nginx
3、检查Nginx配置文件是否存在语法错误(nginx配置文件没问题,可跳过)。可以使用以下命令:
nginx -t
如果配置文件没有语法错误,将输出“nginx: configuration file /etc/nginx/nginx.conf test is successful”。
5、重启Nginx服务以使配置更改生效。可以使用以下命令:
sudo systemctl restart 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才会从上游服务器获取更多的响应。
需要注意的是,这些代理缓冲区配置项可以根据具体情况进行调整,以达到最佳的性能和资源利用率。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能