為您提供行業(yè)資訊、活動(dòng)公告、產(chǎn)品發(fā)布,匯聚最前沿流行的云計算技術(shù)
nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請求壓力。這篇文章主要介紹了使用nginx緩存服務(wù)器上的靜態(tài)文件,文中給大家提到了nginx緩存的優(yōu)點(diǎn)及設置方法,通過(guò)實(shí)例相結合的形式給大家介紹的非常詳細,使用nginx緩存服務(wù)器上靜態(tài)文件的設置方法,需要的朋友可以參考下。
一、nginx緩存的優(yōu)點(diǎn)
如圖所示,nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請求壓力。
因為靜態(tài)文件(比如css,js, 圖片)中,很多都是不經(jīng)常更新的。nginx使用proxy_cache將用戶(hù)的請求緩存到本地一個(gè)目錄。下一個(gè)相同請求可以直接調取緩存文件,就不用去請求服務(wù)器了。
畢竟,IO密集型服務(wù)的處理是nginx的強項。
二、如何進(jìn)行設置
先上個(gè)栗子:
http{
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 96k;
proxy_temp_file_write_size 96k;
proxy_temp_path /tmp/temp_dir;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
server {
listen 80 default_server;
server_name localhost;
root /mnt/blog/;
location / {
}
#要緩存文件的后綴,可以在以下設置。
location ~ .*\.(gif|jpg|png|css|js)(.*) {
proxy_pass http://ip地址:90;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 90d;
add_header wall “hey!guys!give me a star.”;
}
}
# 無(wú)nginx緩存的blog端口
server {
listen 90;
server_name localhost;
root /mnt/blog/;
location / {
}
}
}
因為我是在一臺服務(wù)器上做試驗,所以用了兩個(gè)端口80和90進(jìn)行模擬兩臺服務(wù)器之間的交互。
80端口對接的是普通的域名(https://yuntue.com)訪(fǎng)問(wèn)。
90端口負責處理80端口代理過(guò)來(lái)的資源訪(fǎng)問(wèn)。
相當于90端口是源服務(wù)器,80端口是nginx反向緩存代理服務(wù)器。
接下來(lái)講一下配置項:
2.1 http層設置
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 96k;
proxy_temp_file_write_size 96k;
proxy_temp_path /tmp/temp_dir;
proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
proxy_connect_timeout 服務(wù)器連接的超時(shí)時(shí)間
proxy_read_timeout 連接成功后,等候后端服務(wù)器響應時(shí)間
proxy_send_timeout 后端服務(wù)器數據回傳時(shí)間
proxy_buffer_size 緩沖區的大小
proxy_buffers 每個(gè)連接設置緩沖區的數量為number,每塊緩沖區的大小為size
proxy_busy_buffers_size 開(kāi)啟緩沖響應的功能以后,在沒(méi)有讀到全部響應的情況下,寫(xiě)緩沖到達一定大小時(shí),nginx一定會(huì )向客戶(hù)端發(fā)送響應,直到緩沖小于此值。
proxy_temp_file_write_size 設置nginx每次寫(xiě)數據到臨時(shí)文件的size(大小)限制
proxy_temp_path 從后端服務(wù)器接收的臨時(shí)文件的存放路徑
proxy_cache_path 設置緩存的路徑和其他參數。被緩存的數據如果在inactive參數(當前為1天)指定的時(shí)間內未被訪(fǎng)問(wèn),就會(huì )被從緩存中移除
2.2 server層設置
2.2.1 反向緩存代理服務(wù)器
server {
listen 80 default_server;
server_name localhost;
root /mnt/blog/;
location / {
}
#要緩存文件的后綴,可以在以下設置。
location ~ .*\.(gif|jpg|png|css|js)(.*) {
proxy_pass http://ip地址:90;
proxy_redirect off;
proxy_set_header Host $host;
proxy_cache cache_one;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 90d;
add_header wall “hey!guys!give me a star.”;
}
}
proxy_pass nginx緩存里拿不到資源,向該地址轉發(fā)請求,拿到新的資源,并進(jìn)行緩存
proxy_redirect 設置后端服務(wù)器“Location”響應頭和“Refresh”響應頭的替換文本
proxy_set_header 允許重新定義或者添加發(fā)往后端服務(wù)器的請求頭
proxy_cache 指定用于頁(yè)面緩存的共享內存,對應http層設置的keys_zone
proxy_cache_valid 為不同的響應狀態(tài)碼設置不同的緩存時(shí)間
expires 緩存時(shí)間
這里我設置了圖片、css、js靜態(tài)資源進(jìn)行緩存。
當用戶(hù)輸入http://wangxiaokai.vip域名時(shí),解析得到ip:port的訪(fǎng)問(wèn)地址。port默認為80。所以頁(yè)面請求會(huì )被當前server截取到,進(jìn)行請求處理。
當解析到上述文件名結尾的靜態(tài)資源,會(huì )到緩存區獲取靜態(tài)資源。
如果獲取到對應資源,則直接返回數據。
如果獲取不到,則將請求轉發(fā)給proxy_pass指向的地址進(jìn)行處理。
2.2.2 源服務(wù)器
server {
listen 90;
server_name localhost;
root /mnt/blog/;
location / {
}
}
這里直接處理90端口接受到的請求,到服務(wù)器本地目錄/mnt/blog下抓取資源進(jìn)行響應。
三、如何驗證緩存是否有效
細心的讀者應該發(fā)現,我在第二段栗子里,留了個(gè)彩蛋 add_header wall “hey!guys!give me a star.”。
add_header是用于在報頭設置自定義的信息。
所以,如果緩存有效的話(huà),那么靜態(tài)資源返回的報頭,一定會(huì )帶上這個(gè)信息。
更多資訊:更多資訊
本站發(fā)布的【使用nginx緩存服務(wù)器上靜態(tài)文件的設置方法】?jì)热荩▓D片、視頻和文字)以原創(chuàng )、轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng)
如果涉及侵權請盡快告知,我們將會(huì )在第一時(shí)間立刻刪除涉嫌侵權內容,本站原創(chuàng )內容未經(jīng)允許不得轉載,或轉載時(shí)需注明出處。
Copyright ? 2009-2024 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站