nginx中配置proxy_cache使用内存的方法

发布时间:2019-07-14编辑:脚本学堂
nginx中配置proxy_cache使用内存的方法

nginx用作反向代理,可以缓存代理的内容,配置如下:
 

复制代码 代码如下:
proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=cache0:10m;
proxy_temp_path /data/nginx_cache_tmp/;
proxy_buffer_size 8k;
proxy_buffering on;
proxy_buffers 8 8k;
proxy_cache cache0;
proxy_cache_key “$host$uri$is_args$args”;
proxy_cache_valid 1s;

nginx本身不提供缓存到内存的功能,不过可以通过使用技巧来做,就是利用/dev/shm – 虚拟内存。

首先确认/dev/shm是否被linuxjishu/9952.html target=_blank class=infotextkey>mount了,df命令可以看到一行:
tmpfs 8215004 16 8214988 1% /dev/shm,这台linux是16G内存,所以一半就是8G
使用上说,跟普通磁盘无区别,先创建目录:
 

复制代码 代码如下:
mkdir /dev/shm/nginx_cache;
mkdir /dev/shm/nginx_cache_tmp;

再mount到一个硬盘目录,由于不是块设置,需要用bind参数:
 

复制代码 代码如下:
mount –bind /dev/shm/nginx_cache /data/nginx_cache;
mount –bind /dev/shm/nginx_cache_tmp /data/nginx_cache_tmp;
 

再mount看一下,会有下面几行:
 

复制代码 代码如下:
tmpfs on /dev/shm type tmpfs (rw)
/dev/shm/nginx_cache on /data/nginx_cache type none (rw,bind)
/dev/shm/nginx_cache_tmp on /data/nginx_cache_tmp type none (rw,bind)
 

相当于实现了将代理内容缓存到内存,提高了响应速度。