當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
現在,我們檢視緩存目錄。
緩存目錄下已經有緩存資料存在。