一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

使用nginx转发端口,出现加载图片返回206 partial content

问题

项目部署在coents 7上使用nginx做转发,发现出现以下的问题

  • 一个600多KB的gif图片,显示不出来,刷新7-8次才能出来

F12 打开控制台发现返回状态206 “partial content”,貌似是大文件实现断电续传,没有接收完数据终止了

51福利网

HTTP状态码206表示Partial Content,表示服务器已成功处理了部分GET请求。这通常是因为客户端发起了一个范围请求(Range Request),请求服务器发送文件的一部分。

您那边如果使用的Nginx,可尝试再反向代理配置加下面参数然后重新访问试试:

解决方法

### 在nginx配置中 添加以下配置
proxy_buffer_size 128k;
proxy_buffers   32 128k;
proxy_busy_buffers_size 128k;
  • 重载一下nginx文件几兆都不会超时了
  • img或大文件js都会生效

如果用的宝塔面板反向代理就放到 /www/server/nginx/conf/proxy.conf里面

宝塔面板日志里面出现很多304状态,响应大小

这个是访问你的服务器上的资源,设置了缓存后就不再使用get请求,返回304 ,不再访问服务器上资源,直接返回给缓存数据,因此相应大小是0

我的文件有点大,基本都是6M

针对您提供的Nginx配置,如果您处理的文件大小主要是6M,并且您希望优化Nginx的代理性能,以下是一些建议的优化措施:

  1. 增加代理缓冲区大小
    由于您处理的文件较大,可以考虑增加缓冲区的大小来减少磁盘I/O操作。但是,也要确保服务器有足够的内存来支持这些更改。
proxy_buffer_size 256k; # 初始缓冲区大小  
proxy_buffers 8 256k;   # 缓冲区数量和大小  
proxy_busy_buffers_size 256k; # 保留在内存中的最大数据量

2.调整临时文件写入大小
如果您发现磁盘I/O是一个瓶颈,可以尝试增加proxy_temp_file_write_size的值。但是,过大的值可能会导致系统调用延迟,所以要根据实际硬件和系统性能来调整。

proxy_temp_file_write_size 1m; # 写入临时文件的大小

3.超时设置
根据您的网络环境和上游服务器的性能,适当调整proxy_connect_timeoutproxy_read_timeoutproxy_send_timeout的值。如果网络延迟较高或上游服务器响应较慢,可能需要增加这些值。

4.调整客户端请求体缓冲区大小
如果您的客户端上传的数据也比较大,可能需要调整client_body_buffer_size

client_body_buffer_size 1m; # 客户端请求体的缓冲区大小

代理的是6m左右ts视频文件,你设置为proxy_temp_file_write_size 1m; 可行吗?

当您代理的是大约6MB大小的TS视频文件时,将proxy_temp_file_write_size设置为1MB通常是可行的,并且可能是一个合适的值。这个设置指定了Nginx在写入临时文件时每次写入的数据块大小。

对于6MB的文件,Nginx可能会将其分割成几个数据块进行写入,每个数据块的大小由proxy_temp_file_write_size指定。将其设置为1MB意味着每次写入操作会处理最多1MB的数据。这个值对于大多数系统来说是合理的,并且可以帮助平衡磁盘I/O操作的效率和性能。

然而,需要注意的是,实际的性能优化可能还取决于其他因素,如磁盘速度、系统负载和网络带宽等。如果您发现磁盘I/O成为瓶颈,您可以考虑使用更快的存储设备(如SSD)或优化磁盘访问模式。

此外,确保您的Nginx服务器具有足够的磁盘空间来存储临时文件和缓存文件。代理大文件时,临时文件和缓存文件可能会占用较多的磁盘空间。

遇到的“206未加载完的提示”,这不一定表示有问题。实际上,在流媒体播放中,206响应是预期的行为,因为视频播放器会持续请求视频的不同部分来保持播放的连续性。但是,如果您观察到视频播放存在卡顿或加载不完整的问题,那么您可能需要检查

nginx 反向代理大文件上传参数优化

下面的没有测试,但是好像用了最后一点代码

location ^~ /
{
    proxy_pass http://127.0.0.1:666;
    #强制响应 range 请求,对客户端返回 Accept-Ranges 响应标头及相关 206 状态码
    proxy_force_ranges on;
    proxy_set_header Range $http_range;
    proxy_set_headerIf-Range $http_if_range;
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # 大文件超时优化
    proxy_connect_timeout 86400s;
    proxy_read_timeout  86400s;
    proxy_send_timeout 86400s;
    send_timeout  86400s;
    proxy_buffering off;
    client_max_body_size 0;
    proxy_request_buffering off;
    proxy_socket_keepalive on;
}

这样,在处理文件上传的场景中,就不会因超时、文件太大,缓存太大等各种意外原因失败了,全改为边读边发,无缓存。

打赏
一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《使用nginx转发端口,出现加载图片返回206 partial content》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效,不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册