nginx做缓存的时候,可能用到多快盘。比如如下配置:
proxy_cache_path /disk1 levels=1:2 keys_zone=cache_disk1:10m max_size=5g inactive=7d use_temp_path=off;
proxy_cache_path /disk2 levels=1:2 keys_zone=cache_disk2:10m max_size=5g inactive=7d use_temp_path=off;
proxy_cache_path /disk3 levels=1:2 keys_zone=cache_disk3:10m max_size=5g inactive=7d use_temp_path=off;
可是怎么让请求均匀的分配到这三块盘上呢,一般是配置split_clients方法,方法如下:
split_clients $request_uri $disk {
33% disk1;
33% disk2;
* disk3;
}
之后在location中配置如下:
location ~ (live\.m3u8)$ {
proxy_pass http://liveUpstream;
proxy_cache_valid 10s;
proxy_ignore_headers cache-control;
proxy_cache_key $uri;
proxy_cache cache_ $disk;
}
由location的标红配置可以看出,该缓存磁盘调用的是split_clients函数,会按照百分比获取一个磁盘。完整配置如下:
proxy_cache_path /disk1 levels=1:2 keys_zone=cache_disk1:10m max_size=5g inactive=7d use_temp_path=off;
proxy_cache_path /disk2 levels=1:2 keys_zone=cache_disk2:10m max_size=5g inactive=7d use_temp_path=off;
proxy_cache_path /disk3 levels=1:2 keys_zone=cache_disk3:10m max_size=5g inactive=7d use_temp_path=off;
可是怎么让请求均匀的分配到这三块盘上呢,一般是配置split_clients方法,方法如下:
split_clients $request_uri $disk {
33% disk1;
33% disk2;
* disk3;
}
之后在location中配置如下:
location ~ (live\.m3u8)$ {
proxy_pass http://liveUpstream;
proxy_cache_valid 10s;
proxy_ignore_headers cache-control;
proxy_cache_key $uri;
proxy_cache cache_ $disk;
}
由location的标红配置可以看出,该缓存磁盘调用的是split_clients函数,会按照百分比获取一个磁盘。完整配置如下:
user root;
worker_processes 1;
events {
worker_connections 10240;