當前位置:首頁 » 文件管理 » nginx緩存文件位置

nginx緩存文件位置

發布時間: 2022-04-26 03:50:57

⑴ windows 下nginx緩存路徑怎麼寫

表示還沒寫過這個 你這是配置的代理伺服器嗎?我看了一下,我linux和Windows下配置的代理伺服器都沒有寫這個緩存路徑,也不知道它是怎麼自動分配的,你也可以嘗試不寫看看

⑵ nginx緩存文件存放在哪個目錄

滑鼠右鍵,查看屬性。裡面就是目錄了

⑶ nginx expires 緩存放哪裡

在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。

apache:
首先確定配置文件httpd.conf中確已經載入mod_headers模塊。

LoadMole headers_mole moles/mod_headers.so

我們可以根據文件類型來讓瀏覽器每次都從伺服器讀取,這里測試用css、js、swf、php、html、htm這幾種文件。
<FilesMatch 「\.(css|js|swf|php|htm|html)$」>
Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>

nginx:

location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}

對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低伺服器壓力的目的。

以Nginx伺服器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#過期時間為30天,
#圖片文件不怎麼更新,過期可以設大一點,
#如果頻繁更新,則可以設置得小一點。
expires 30d;
}

⑷ nginx 配置詳解是怎麼樣的

Nginx配置文件主要分為四部分:main(全局配置)、server(主機設置)、upstream(上游伺服器設置)和location(URL匹配特定位置後的設置)每部分包含若干個指令。

Nginx功能豐富,可作為HTTP伺服器,也可作為反向代理伺服器,郵件伺服器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。

並且支持很多第三方的模塊擴展,Nginx的穩定性、功能集、示例配置文件和低系統資源的消耗讓他後來居上,在全球活躍的網站中有12.18%的使用比率,大約為2220萬個網站。

nginx 配置注意事項

Nginx可以對不同的文件做不同的緩存處理,配置靈活,並且支持FastCGI_Cache,主要用於對FastCGI的動態程序進行緩存。配合著第三方的ngx_cache_purge,對制定的URL緩存內容可以的進行增刪管理。

events塊:配置影響nginx伺服器或與用戶的網路連接。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啟多個網路連接序列化等。

⑸ linux nginx緩存文件在哪個文件夾

假設你是用包管理工具安裝的nginx:
如果你是redhat系列的,安裝包是.rpm包,或者你用yum安裝的話,這樣查找:
rpm
-ql
nginx
如果是ubuntu,也是類似的方法,具體參數你可以查查
如果你是源碼安裝的nginx
那麼需要問問安裝的人了,或者到/etc/nginx目錄下翻一翻配置文件?

⑹ nginx 緩存怎麼都在tmp

nginx緩存cache的5種方案
1、傳統緩存之一(404)
這個辦法是把nginx的404錯誤定向到後端,然後用proxy_store把後端返回的頁面保存。
配置:

location / {
root /home/html/;#主目錄
expires 1d;#網頁的過期時間
error_page 404 =200 /fetch$request_uri;#404定向到/fetch目錄下
}
location /fetch/ {#404定向到這里
internal;#指明這個目錄不能在外部直接訪問
expires 1d;#網頁的過期時間
alias /html/;
proxy_store會將文件保存到這目錄下
proxy_passhttp://www.jb51.net/;#後端upstream地址,/fetch同時是一個代理
proxy_set_header Accept-Encoding '';#讓後端不要返回壓縮(gzip或deflate)的內容,保存壓縮後的內容會引發亂子。
proxy_store on;#指定nginx將代理返回的文件保存
proxy_temp_path /home/tmp;#臨時目錄,這個目錄要和/home/html在同一個硬碟分區內

}

使用的時候還有要注意是nginx要有許可權往/home/tmp和/home/html下有寫入文件的許可權,在linux下nginx一般會配
置成nobody用戶運行,這樣這兩個目錄就要chown nobody,設成nobody用戶專用,當然也可以chmod
777,不過所有有經驗的系統管理員都會建議不要隨便使用777。
2、傳統緩存之二(!-e)
原理和404跳轉基本一致,但更簡潔一些:

location / {
root /home/html/;
proxy_store on;
proxy_set_header Accept-Encoding '';
proxy_temp_path /home/tmp;
if ( !-f $request_filename )
{
proxy_passhttp://www.jb51.net/;
}
}

可以看到這個配置比404節約了不少代碼,它是用!-f來判斷請求的文件在文件系統上存不存在,不存在就proxy_pass到後端,返回同樣是用proxy_store保存。
兩種傳統緩存都有著基本一樣的優點和缺點:
缺點1:不支持帶參數的動態鏈接,比如read.php?id=1,因為nginx只保存文件名,所以這個鏈接只在文件系統下保存為
read.php,這樣用戶訪問read.php?id=2時會返回不正確的結果。同時不支持http://www.jb51.net/這種形式的首頁和
二級目錄http://www.jb51.net/download/,因為nginx非常老實,會將這樣的請求照鏈接寫入文件系統,而這個鏈接顯然是一
個目錄,所以保存失敗。這些情況都需要寫rewrite才能正確保存。
缺點2:nginx內部沒有緩存過期和清理的任何機制,這些緩存的文件會永久性地保存在機器上,如果要緩存的東西非常多,那就會撐暴整個硬碟空間。為此可以使用一個shell腳本定期清理,同時可以撰寫php等動態程序來做實時更新。
缺點3:只能緩存200狀態碼,因此後端返回301/302/404等狀態碼都不會緩存,假如恰好有一個訪問量很大的偽靜態鏈接被刪除,那就會不停穿透導致後端承載不小壓力。
缺點4:nginx不會自動選擇內存或硬碟作為存儲介質,一切由配置決定,當然在當前的操作系統里都會有操作系統級的文件緩存機制,所以存在硬碟上也不需要過分擔心大並發讀取造成的io性能問題。
nginx傳統緩存的缺點也是它和squid等緩存軟體的不同之特色,所以也可看作其優點。在生產應用中它常常用作和squid的搭檔,squid對
於帶?的鏈接往往無法阻擋,而nginx能將其訪問攔住,例如:http://jb51.net/?和http://jb51.net/在squid上會
被當做兩個鏈接,所以會造成兩次穿透;而nginx只會保存一次,無論鏈接變成http://jb51.net/?1還是http://jb51.net
/?123,均不能透過nginx緩存,從而有效地保護了後端主機。
nginx會非常老實地將鏈接形式保存到文件系統中,這樣對於一個鏈接,可以很方便地查閱它在緩存機器上的緩存狀態和內容,也可以很方便地和別的文件管理器如rsync等配合使用,它完完全全就是一個文件系統結構。
這兩種傳統緩存都可以在linux下將文件保存到/dev/shm里,一般我也是這么做的,這樣可以利用系統內存來做緩存,利用內存的話,清理過期內
容速度就會快得多。使用/dev/shm/時除了要把tmp目錄也指向到/dev/shm這個分區外,如果有大量小文件和目錄,還要修改一下這個內存分區
的inode數量和最大容量:


mount -o size=2500M -o nr_inodes=480000 -o noatime,nodiratime -o remount /dev/shm

上面的命令在一台有3G內存的機器上使用,因為/dev/shm默認最大內存是系統內存的一半就是1500M,這條命令將其調大成2500M,
同時shm系統inode數量默認情況下可能是不夠用的,但有趣的是它可以隨意調節,這里調節為480000保守了點,但也基本夠用了。
3、基於memcached的緩存
nginx對memcached有所支持,但是功能並不是特別之強,性能上還是非常之優秀。


location /mem/ {
if ( $uri ~ "^/mem/([0-9A-Za-z_]*)$" )
{
set $memcached_key "$1";
memcached_pass 192.168.1.2:11211;
}
expires 70;
}

這個配置會將http://jb51.net/mem/abc指明到memcached的abc這個key去取數據。
nginx目前沒有寫入memcached的任何機制,所以要往memcached里寫入數據得用後台的動態語言完成,可以利用404定向到後端去寫入數據。
4、基於第三方插件ncache
ncache是新浪兄弟開發的一個不錯的項目,它利用nginx和memcached實現了一部分類似squid緩存的功能,我並沒有使用這個插件的經驗,可以參考:
http://code.google.com/p/ncache/
5、nginx新開發的proxy_cache功能
從nginx-0.7.44版開始,nginx支持了類似squid較為正規的cache功能,目前還處於開發階段,支持相當有限,這個緩存是把鏈接用md5編碼hash後保存,所以它可以支持任意鏈接,同時也支持404/301/302這樣的非200狀態。
配置:
首先配置一個cache空間:

復制代碼 代碼如下:

proxy_cache_path /path/to/cache levels=1:2 keys_zone=NAME:10m inactive=5m max_size=2m clean_time=1m;

注意這個配置是在server標簽外,levels指定該緩存空間有兩層hash目錄,第一層目錄是1個字母,第二層為2個字母,保存的文件名就會類
似/path/to/cache/c/29/;keys_zone為這個空間起個名
字,10m指空間大小為10MB;inactive的5m指緩存默認時長5分鍾;max_size的2m是指單個文件超過2m的就不緩
存;clean_time指定一分鍾清理一次緩存。

location / {
proxy_passhttp://www.jb51.net/;
proxy_cache NAME;#使用NAME這個keys_zone
proxy_cache_valid 200 302 1h;#200和302狀態碼保存1小時
proxy_cache_valid 301 1d;#301狀態碼保存一天
proxy_cache_valid any 1m;#其它的保存一分鍾
}

ps:支持cache的0.7.44到0.7.51這幾個版本的穩定性均有問題,訪問有些鏈接會出現錯誤,所以這幾個版本最好不要在生產環境中
使用。nginx-0.7下目前所知較為穩定的版本是0.7.39。穩定版0.6.36版也是近期更新,如果在配置里沒有使用到0.7的一些新標簽新功
能,也可以使用0.6.36版。

Nginx緩存的內存佔用問題的一般解決方法
1、前些日子某服務被刷,每分鍾達到上幾百萬請求;當時採用了nginx cache來解決的;但是因為某服務不能緩存太久,當時設置了5s,那麼帶來的問題就是產生大量小文件,而且很快就刪除了。

2、通過

free -m

會發現used是27G;但是通過top查看進程占的內存並沒有那麼多

那內存去哪了?

3、通過查閱資料會發現(cat /proc/meminfo)
Slab: 22464312 kB
SReclaimable: 16474128 kB (這些是內核保持的但是可以釋放的inode和dentry的緩存)
SUnreclaim: 5990184 kB

4、這些內存為什麼會不自動清理呢?
某機房機器系統版本:Linux 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux(正常,沒出現內存快到100%的情況)
某機房機器系統版本:Linux 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux (不釋放)

5、通過設置如下參數來設置內存閥值

sysctl -w vm.extra_free_kbytes=6436787
sysctl -w vm.vfs_cache_pressure=10000

⑺ nginx做緩存加速網站,如何清空網站緩存怎樣刪除緩存

我一般比你多配置這兩個欄位:
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
默認存放位置我沒有細研究,刪除緩存可以直接刪除 /home/cache裡面的所有內容即可刪除所有緩存。還有如下配置可以實現有針對性的刪除相應緩存文件:
#用於清除緩存,假設一個URL為http://192.168.1.1/test.txt,通過訪問http://192.168.1.1/purge/test.txt就可以清除該URL的緩存。
location ~ /purge(/.*)
{
#設置只允許指定的IP或IP段才可以清除URL緩存。
#allow 127.0.0.1;
allow all;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}

⑻ nginx配置怎麼指定conf.d文件夾下位置文件

代碼如下:

#運行用戶
user www-data;
#啟動進程,通常設置成和cpu的數量相等
worker_processes 1;

#全局錯誤日誌及PID文件
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

#工作模式及連接數上限
events {
use epoll; #epoll是多路復用IO(I/O Multiplexing)中的一種方式,但是僅用於linux2.6以上內核,可以大大提高nginx的性能
worker_connections 1024;#單個後台worker process進程的最大並發鏈接數
# multi_accept on;
}

#設定http伺服器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型,類型由mime.type文件定義
include /etc/nginx/mime.types;
default_type application/octet-stream;
#設定日誌格式
access_log /var/log/nginx/access.log;

#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero 方式)來輸出文件,對於普通應用,
#必須設為 on,如果用來進行下載等應用磁碟IO重負載應用,可設置為 off,以平衡磁碟與網路I/O處理速度,降低系統的uptime.
sendfile on;
#tcp_nopush on;

#連接超時時間
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;

#開啟gzip壓縮
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";

#設定請求緩沖
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

#設定負載均衡的伺服器列表
upstream mysvr {
#weigth參數表示權值,權值越高被分配到的幾率越大
#本機上的Squid開啟3128埠
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}

server {
#偵聽80埠
listen 80;
#定義使用www.xx.com訪問
server_name www.xx.com;

#設定本虛擬主機的訪問日誌
access_log logs/www.xx.com.access.log main;

#默認請求
location / {
root /root; #定義伺服器的默認網站根目錄位置
index index.php index.html index.htm; #定義首頁索引文件的名稱

fastcgi_pass www.xx.com;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

# 定義錯誤提示頁面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}

#靜態文件,nginx自己處理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#過期30天,靜態文件不怎麼更新,過期可以設大一點,如果頻繁更新,則可以設置得小一點。
expires 30d;
}
#PHP 腳本請求全部轉發到 FastCGI處理. 使用FastCGI默認配置.
location ~ \.php {
root /root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
include fastcgi_params;
}
#設定查看Nginx狀態的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
#禁止訪問 .htxxx 文件
location ~ /\.ht {
deny all;
}

}
}

以上是一些基本的配置,使用Nginx最大的好處就是負載均衡

如果要使用負載均衡的話,可以修改配置http節點如下:

#設定http伺服器,利用它的反向代理功能提供負載均衡支持
http {
#設定mime類型,類型由mime.type文件定義
include /etc/nginx/mime.types;
default_type application/octet-stream;
#設定日誌格式
access_log /var/log/nginx/access.log;

#省略上文有的一些配置節點

#。。。。。。。。。。

#設定負載均衡的伺服器列表
upstream mysvr {
#weigth參數表示權值,權值越高被分配到的幾率越大
server 192.168.8.1x:3128 weight=5;#本機上的Squid開啟3128埠
server 192.168.8.2x:80 weight=1;
server 192.168.8.3x:80 weight=6;
}

upstream mysvr2 {
#weigth參數表示權值,權值越高被分配到的幾率越大

server 192.168.8.x:80 weight=1;
server 192.168.8.x:80 weight=6;
}

#第一個虛擬伺服器
server {
#偵聽192.168.8.x的80埠
listen 80;
server_name 192.168.8.x;

#對aspx後綴的進行負載均衡請求
location ~ .*\.aspx$ {

root /root; #定義伺服器的默認網站根目錄位置
index index.php index.html index.htm; #定義首頁索引文件的名稱

proxy_pass http://mysvr ;#請求轉向mysvr 定義的伺服器列表

#以下是一些反向代理的配置可刪除.

proxy_redirect off;

#後端的Web伺服器可以通過X-Forwarded-For獲取用戶真實IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允許客戶端請求的最大單文件位元組數
client_body_buffer_size 128k; #緩沖區代理緩沖用戶端請求的最大位元組數,
proxy_connect_timeout 90; #nginx跟後端伺服器連接超時時間(代理連接超時)
proxy_send_timeout 90; #後端伺服器數據回傳時間(代理發送超時)
proxy_read_timeout 90; #連接成功後,後端伺服器響應時間(代理接收超時)
proxy_buffer_size 4k; #設置代理伺服器(nginx)保存用戶頭信息的緩沖區大小
proxy_buffers 4 32k; #proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設置
proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #設定緩存文件夾大小,大於這個值,將從upstream伺服器傳

}

}
}

⑼ 如何查看 nginx是否有緩存

Nginx對應的埠號是否在監聽, 看看Nginx配置文件中有沒有寫log文件的存儲位置,找到Nginx的Log文件,查看分析一下。

⑽ nginx 反代里緩存怎麼清理

最簡單的反代+全緩存腳本:

#新建2個目錄,放置緩存文件:

mkdir -p /home/cache/path

mkdir /home/cache/temp

修改/usr/local/nginx/conf/nginx.conf的http層,添加以下代碼:

client_body_buffer_size 512k;

proxy_connect_timeout 5;

proxy_read_timeout 60;

proxy_send_timeout 5;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

proxy_temp_path /home/cache/temp;

proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:10m inactive=7d max_size=30g;

#500m是內存佔用,7d是7天無訪問刪除,30g是緩存占具硬碟空間

#limit_zone crawler $binary_remote_addr 10m; #這段是用於限制單ip連接數的,如果頻繁出現後端負載過大可以嘗試去掉#。

(10)nginx緩存文件位置擴展閱讀:

nginx僅僅處理靜態頁面,動態的頁面(php請求)統統都交付給後台的兩台apache來處理。也就是說,可以把網站的靜態頁面或者文件放置到nginx的目錄下;動態的頁面和資料庫訪問都保留到後台的apache伺服器上。

假設前端nginx(為127.0.0.1:8080)僅僅包含一個靜態頁面index.html;後 台的兩個apache伺服器(分別為localhost:80和158.37.70.143:80),一台根目錄放置phpMyAdmin文件夾和 test.php(裡面測試代碼為print "server1";),另一台根目錄僅僅放置一個test.php(裡面測試代碼為print "server2";)。

熱點內容
銀行回單存儲 發布:2024-11-13 03:33:42 瀏覽:10
博途上傳編譯之後不一致 發布:2024-11-13 03:33:42 瀏覽:28
什麼是黑機安卓 發布:2024-11-13 03:30:25 瀏覽:107
java數組object數組 發布:2024-11-13 03:30:25 瀏覽:401
台灣雲伺服器價格 發布:2024-11-13 03:29:42 瀏覽:287
十年編程詩 發布:2024-11-13 03:28:16 瀏覽:862
修飾訪問符 發布:2024-11-13 03:02:24 瀏覽:55
php項目開發全程實錄源碼 發布:2024-11-13 02:43:30 瀏覽:272
戰地一如何挑選伺服器 發布:2024-11-13 02:37:50 瀏覽:885
存儲過程動態sql 發布:2024-11-13 02:25:50 瀏覽:614