• nginx实现range请求


    前提条件:nginx支持ngx_http_slice_module模块

    配置文件示例:

    #location 块的配置:
    location /asd/ {
                    slice             512k;
                    proxy_cache       cache;
                    proxy_cache_key   $uri$is_args$args$slice_range;
                    proxy_set_header  Range $slice_range;
                    proxy_set_header Host $host:$server_port;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_cache_valid 200 206 304 301 302 10d;
            }
    #设置proxy_cache_path
    proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=cache:100m inactive=300s max_size=5g;
    

    相关参数解释:

    Proxy_cache cache 使用名为cache的对应缓存配置

    proxy_cache_valid 200 206 304 301 302 10d; 对httpcode为200…的缓存10天

    proxy_cache_key 定义缓存唯一key,通过唯一key来进行hash存取

    proxy_set_header 自定义http header头,用于发送给后端真实服务器。

    proxy_cache_path 缓存文件路径

    levels 设置缓存文件目录层次;levels=1:2 表示两级目录

    keys_zone 设置缓存名字和共享内存大小

    inactive 在指定时间内没人访问则被删除

    max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

    参考文档:
    https://blog.csdn.net/ai2000ai/article/details/80485352

    ​https://blog.csdn.net/guowenyan001/article/details/50836490

    报错解释:

    [alert] mmap(MAP_ANON|MAP_SHARED, 2147483648) failed (12: Cannot allocate memory)

    proxy_cache_path没有设置或设置的内存太大导致,建议改成300m

  • 相关阅读:
    Docker 第一章 安装测试
    时区
    操作系统层虚拟化
    KVM
    基于秘钥的登录认证
    Hypervisor
    通过域名区分不同网站服务
    硬件虚拟化
    虚拟化初识
    nginx rewrite (转发)
  • 原文地址:https://www.cnblogs.com/feng0919/p/13338141.html
Copyright © 2020-2023  润新知