35人参与 • 2025-12-17 • https
今日运维人员告知我,突然网站的登录页访问变白屏,我登录后台发现服务一切正常,nginx也正常运行,我尝试访问网站登录页,并连点十几次会访问正常,之后就会正常,但是登录以后也会某些页面存在白屏状态,查看浏览器请求发现某些js、css文件没有正常返回,nginx的访问日志出现206等问题,想到前几天刚续费了https的域名证书,证书也换过了,然后切换到内网http发现正常,猜想应该是nginx中的https的配置有问题,缓存类配置可能存在问题。
总结出现以下异常:
chunk-vendors.js)加载失败,状态码为206 partial content;10.xx.xxx.90 - - 443 [25/oct/2025:17:40:20 +0800] "get /js/chunk-vendors.6112ac08.js http/1.1" 206 1 "https://xxxx/login" "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36"
当nginx作为反向代理时,其处理上游响应的流程如下:
proxy_max_temp_file_size控制);nginx默认配置的缓冲区大小为:
proxy_buffer_size 4k|8k; # 响应头缓冲区 proxy_buffers 8 4k|8k; # 响应体缓冲区(数量 × 大小) proxy_busy_buffers_size 8k|16k; # 忙碌时可发送的最大缓冲区
8 × 4k = 32kb,不足以承载1~2mb的前端资源;partial content,表示响应未完整传输,nginx在临时文件写入过程中可能因超时或中断导致加载失败。http无需加密,nginx处理速度更快,缓冲区在短时间内能完成数据传输,因此未触发问题。
在nginx配置文件的http块中添加以下配置:
# 增加内存缓冲区大小,避免写入临时文件 proxy_buffer_size 128k; # 存储响应头(含cookie/csp等) proxy_buffers 32 128k; # 存储响应体(32 × 128k = 4mb) proxy_busy_buffers_size 128k; # 忙碌时最大发送缓冲区
| 参数 | 作用 | 推荐值 | 说明 |
|---|---|---|---|
proxy_buffer_size | 响应头缓冲区 | 128k | 确保大头信息(如cookie、csp)完整加载 |
proxy_buffers | 响应体缓冲区 | 32 × 128k | 总容量4mb,覆盖常见前端资源大小 |
proxy_busy_buffers_size | 忙碌时发送缓冲区 | 128k | 避免缓冲区争用导致发送中断 |
✅ 生效范围:配置应放在http块中全局生效,或针对特定server/location块。
# 检查配置语法 sudo nginx -t # 重载配置 sudo nginx -s reload
清除浏览器缓存之后重新访问,一切正常,问题解决。
到此这篇关于nginx https代理大文件加载失败的排查与解决方案的文章就介绍到这了,更多相关nginx https代理大文件加载失败内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论