奥塔在线:CentOS7下配置Nginx实现本地缓存

当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字节。

奥塔在线:CentOS7下配置Nginx实现本地缓存_第1张图片

第二步:对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

现在,我们查看缓存目录。

奥塔在线:CentOS7下配置Nginx实现本地缓存_第2张图片

缓存目录下已经有缓存数据存在。

你可能感兴趣的:(Linux,Performance)