一、nginx緩存的優(yōu)點
如圖所示,nginx緩存,可以在一定程度上,減少源服務(wù)器的處理請求壓力。
因為靜態(tài)文件(比如css,js, 圖片)中,很多都是不經(jīng)常更新的。nginx使用proxy_cache將用戶的請求緩存到本地一個目錄。下一個相同請求可以直接調(diào)取緩存文件,就不用去請求服務(wù)器了。
畢竟,IO密集型服務(wù)的處理是nginx的強項。
二、如何進行設(shè)置
先上個栗子:
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."; } } # 無nginx緩存的blog端口 server { listen 90; server_name localhost; root /mnt/blog/; location / { } }}
因為我是在一臺服務(wù)器上做試驗,所以用了兩個端口80和90進行模擬兩臺服務(wù)器之間的交互。
80端口對接的是普通的域名(http://wangxiaokai.vip)訪問。
90端口負(fù)責(zé)處理80端口代理過來的資源訪問。
相當(dāng)于90端口是源服務(wù)器,80端口是nginx反向緩存代理服務(wù)器。
接下來講一下配置項:
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;proxy_connect_timeout 服務(wù)器連接的超時時間 proxy_read_timeout 連接成功后,等候后端服務(wù)器響應(yīng)時間 proxy_send_timeout 后端服務(wù)器數(shù)據(jù)回傳時間 proxy_buffer_size 緩沖區(qū)的大小 proxy_buffers 每個連接設(shè)置緩沖區(qū)的數(shù)量為number,每塊緩沖區(qū)的大小為size proxy_busy_buffers_size 開啟緩沖響應(yīng)的功能以后,在沒有讀到全部響應(yīng)的情況下,寫緩沖到達(dá)一定大小時,nginx一定會向客戶端發(fā)送響應(yīng),直到緩沖小于此值。 proxy_temp_file_write_size 設(shè)置nginx每次寫數(shù)據(jù)到臨時文件的size(大小)限制 proxy_temp_path 從后端服務(wù)器接收的臨時文件的存放路徑 proxy_cache_path 設(shè)置緩存的路徑和其他參數(shù)。被緩存的數(shù)據(jù)如果在inactive參數(shù)(當(dāng)前為1天)指定的時間內(nèi)未被訪問,就會被從緩存中移除
新聞熱點
疑難解答
圖片精選