一、nginx緩存的優(yōu)點(diǎn)
創(chuàng)新互聯(lián)專(zhuān)注于郎溪企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。郎溪網(wǎng)站建設(shè)公司,為郎溪等地區(qū)提供建站服務(wù)。全流程定制開(kāi)發(fā),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
如圖所示,nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請(qǐng)求壓力。
因?yàn)殪o態(tài)文件(比如css,js, 圖片)中,很多都是不經(jīng)常更新的。nginx使用proxy_cache將用戶的請(qǐng)求緩存到本地一個(gè)目錄。下一個(gè)相同請(qǐng)求可以直接調(diào)取緩存文件,就不用去請(qǐng)求服務(wù)器了。
畢竟,IO密集型服務(wù)的處理是nginx的強(qiáng)項(xiàng)。
二、如何進(jìn)行設(shè)置
先上個(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 / { } #要緩存文件的后綴,可以在以下設(shè)置。 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 / { } } }
因?yàn)槲?是在一臺(tái)服務(wù)器上做試驗(yàn),所以用了兩個(gè)端口80和90進(jìn)行模擬兩臺(tái)服務(wù)器之間的交互。
80端口對(duì)接的是普通的域名(http://wangxiaokai.vip)訪問(wèn)。
90端口負(fù)責(zé)處理80端口代理過(guò)來(lái)的資源訪問(wèn)。
相當(dāng)于90端口是源服務(wù)器,80端口是nginx反向緩存代理服務(wù)器。
接下來(lái)講一下配置項(xiàng):
2.1 http層設(shè)置
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;
2.2 server層設(shè)置
2.2.1 反向緩存代理服務(wù)器
server { listen 80 default_server; server_name localhost; root /mnt/blog/; location / { } #要緩存文件的后綴,可以在以下設(shè)置。 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."; } }
這里我設(shè)置了圖片、css、js靜態(tài)資源進(jìn)行緩存。
當(dāng)用戶輸入http://wangxiaokai.vip域名時(shí),解析得到ip:port的訪問(wèn)地址。port默認(rèn)為80。所以頁(yè)面請(qǐng)求會(huì)被當(dāng)前server截取到,進(jìn)行請(qǐng)求處理。
當(dāng)解析到上述文件名結(jié)尾的靜態(tài)資源,會(huì)到緩存區(qū)獲取靜態(tài)資源。
如果獲取到對(duì)應(yīng)資源,則直接返回?cái)?shù)據(jù)。
如果獲取不到,則將請(qǐng)求轉(zhuǎn)發(fā)給proxy_pass指向的地址進(jìn)行處理。
2.2.2 源服務(wù)器
server { listen 90; server_name localhost; root /mnt/blog/; location / { } }
這里直接處理90端口接受到的請(qǐng)求,到服務(wù)器本地目錄/mnt/blog下抓取資源進(jìn)行響應(yīng)。
三、如何驗(yàn)證緩存是否有效
細(xì)心的讀者應(yīng)該發(fā)現(xiàn),我在第二段栗子里,留了個(gè)彩蛋 add_header wall "hey!guys!give me a star."。
add_header是用于在報(bào)頭設(shè)置自定義的信息。
所以,如果緩存有效的話,那么靜態(tài)資源返回的報(bào)頭,一定會(huì)帶上這個(gè)信息。
訪問(wèn)http://wangxiaokai.vip結(jié)果如下:
名稱(chēng)欄目:使用nginx緩存服務(wù)器上靜態(tài)文件的設(shè)置方法
文章地址:http://muchs.cn/article6/ijdcog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、企業(yè)網(wǎng)站制作、企業(yè)建站、品牌網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)