搭建一個具備緩存功能的反向代理服務

前提:須要搭建和部署nginx服務以及後端服務,以便測試反向代理使用,這部分工做省略。nginx

一. 設置緩存空間

在nginx的http模塊中開闢一塊名爲my_cache的緩存空間,緩存路徑爲/tmp/nginxcache,大小爲10m。shell

# 設置緩存路徑及其餘緩存參數。
# levels定義高速緩存的級別,每一個級別接收值1或2,
# keys_zone設置共享緩存名稱和大小,全部活動的key和信息被存儲再緩存中。
# max_size設置最大緩存大小
proxy_cache_path  /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=1g;

二. 設置緩存

在nginx server模塊設置反向代理緩存後端

proxy_pass  http://127.0.0.1:3000;   #代理的後端服務
    proxy_cache my_cache ;    #定義用於緩存的共享緩存區域,默認爲proxy_cache off
    proxy_cache_key $host$uri$is_args$args;    #設置緩存key
    proxy_cache_valid 200 304 302 5m;    #設置不一樣響應碼的緩存時間
    proxy_cache_valid 404 10s;

三. 重啓nginx,測試

nginx -s reload
siege http://onlinetest.guoew.cc/ -c 500 -t 5

Lifting the server siege...      done.                                                                                      Transactions:              129470 hits
Availability:              100.00 %            #成功率
Elapsed time:              299.03 secs        #執行時間
Data transferred:         6918.02 MB        #數據傳輸大小
Response time:                0.65 secs        #平均響應時間
Transaction rate:          432.97 trans/sec    #每秒處理請求數
Throughput:               23.13 MB/sec        #平均每秒傳輸數據量
Concurrency:              282.00            #實際最高併發
Successful transactions:      129470    #成功處理次數
Failed transactions:               0        #失敗處理次數
Longest transaction:           17.72    #傳輸所花最長時間
Shortest transaction:            0.00    #傳輸所花最短期

四. 不使用緩存,再進行測試

不敢直視,siege 500併發幾乎所有報錯,下降到併發100才能勉強進行測試。緩存

ransactions:                8389 hits
Availability:              100.00 %
Elapsed time:              299.32 secs
Data transferred:          356.36 MB
Response time:                3.05 secs
Transaction rate:           28.03 trans/sec
Throughput:                1.19 MB/sec
Concurrency:               85.60
Successful transactions:        6721
Failed transactions:               0
Longest transaction:           18.60
Shortest transaction:            0.00

五. 總結

相關文章
相關標籤/搜索