当Nginx作为静态资源文件服务器时,为保障高并发时的访问性能,一般都会对Nginx做本地缓存策略。
第一步:在tmpfs上创建缓存目录
#在/dev/shm下创建缓存目录
mkdir /dev/shm/proxy_temp
mkdir /dev/shm/proxy_cache#让任何用户都可以访问
chown nobody:root /dev/shm/proxy_temp
chown nobody:root /dev/shm/proxy_cache
/dev/shm
这个目录是linux下一个利用内存虚拟出来的一个目录,它的容量默认最大值是系统内存的一半大小。我们使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。
第二步:对Nginx进行配置
Nginx默认一般是安装在/usr/local/nginx/目录。
vi /usr/local/nginx/conf/nginx.conf
****************************************************************************************************#在http里面配置
#缓存临时目录
proxy_temp_path /dev/shm/proxy_temp;
#缓存目录 缓存区名称为cache_fds 缓存大小为200M 1天未访问的内容自动清除 硬盘缓存空间为3GB
proxy_cache_path /dev/shm/proxy_cache levels=1:2 keys_zone=cache_fds:200m inactive=1d max_size=3g;#配置源内容地址
upstream local_fds {
server 127.0.0.1:81; #注意这里尽量使用IP,否则会报访问拒绝错误
}
server {
listen 81;
server_name 127.0.0.1;
location / {
root /usr/local/nginx/html/;
client_max_body_size 10m;
access_log off;
autoindex off;
}
}
server {
listen 80;
server_name localhost;location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|GIF|JPG|JPEG|PNG|BMP|SWF|json)$ {
proxy_cache cache_fds;
proxy_cache_methods GET HEAD POST;
proxy_cache_min_uses 1;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
proxy_cache_valid any 1m;
proxy_cache_key "$host:$server_port$uri$is_args$args";
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;
expires 30d;
proxy_pass http://local_fds;
}
location / {
root html;
index index.html index.htm;
}
}
第三步:重启Nginx服务
/usr/local/nginx/sbin/nginx -s reload
现在,我们查看缓存目录。
缓存目录下已经有缓存数据存在。