天天看點

奧塔線上: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實作本地緩存

第二步:對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實作本地緩存

緩存目錄下已經有緩存資料存在。

繼續閱讀