簡介:nginx proxy_store緩存的結果,就是按照服務器的目錄設置,直接緩存文件到同樣的目錄,像鏡像一樣。
遇到的問題:當服務器需要緩存的文件過大,恰巧此時沒有緩存,但是有很多用戶同時訪問此文件的話,會出現生成很多,臨時緩存文件(如000000132)的情況,針對同一個文件的臨時緩存各個用戶之間是不會共享的,因此會生成很多的臨時文件,總的臨時文件加載一起有10nG,也不是沒有可能,影響nginx正常緩存。如果遇到此種情況,那么就執行下面的命令手動清除吧。
[root@HOST]#rm -rf [緩存文件的路徑]/*
如果緩存文件過多也可以執行上面的命令。如果要定時清理,那么就把這條命令寫入腳本(如clear-cache.sh)然后
[root@HOST]#crontab -e
***/3**/root/clear-cache.sh
一、獲取安裝包
獲取安裝包: wget http://nginx.org/download/nginx-1.7.9.tar.gz
二、安裝nginx
[root@HOST]# tar -xvzf nginx-1.7.9.tar.gz
[root@HOST]# cd nginx-1.7.9 [root@HOST]# ./configure --prefix=/usr/local/nginx [root@HOST]# make
[root@HOST]# make install
三、配置nginx(主要添加加粗字體部分)
[root@HOST]cd /usr/local/nginx
[root@HOST]vi ./conf/nginx.conf
用加粗字體替換掉原來的部分
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; server { listen 8065; server_name localhost; location / { expires 3d; proxy_set_header Accept-Encoding ''; root /home/mpeg/nginx; proxy_store on; proxy_store_access user:rw group:rw all:rw; proxy_temp_path /home/mpeg/nginx; if ( !-e $request_filename) { proxy_pass http://192.168.0.1; } } } }
四、說明
/********************************************* 此段為注釋: ---------------------------------------------- location / { //這里的location是要換成自己經過精確匹配的location,比如要緩存圖片要寫成 "location ~*\.(gif|jpg|jepg|png|bmp)${" expires 3d; //所有鏈接,瀏覽器緩存過期時間為3天 proxy_set_header Accept-Encoding ''; root /home/mpeg/nginx; //此目錄為服務器的根目錄,下面的if語句就是判斷此目錄下是否有響應的文件 proxy_store on; //表示開啟緩存 proxy_store_access user:rw group:rw all:rw; //表示用戶讀寫權限,如果在error中報路徑不允許訪問的話就用"chomod -R a+rw"將下面配置的路徑改為相應的權限. proxy_temp_path /home/mpeg/nginx; //此處為文件的緩存路徑,這個路徑是和url中的文件路徑一致的,url中?后面的部分不作為路徑或文件名參考 if ( !-e $request_filename) { proxy_pass http://192.168.0.1; //此處為要被代理的服務器的地址 } } **********************************************