• 搭建一个具有缓存功能的反向代理服务


    前提:需要搭建和部署nginx服务以及后端服务,以便测试反向代理使用,这部分工作省略。

    一. 设置缓存空间

    在nginx的http模块中开辟一块名为my_cache的缓存空间,缓存路径为/tmp/nginxcache,大小为10m。

    # 设置缓存路径及其他缓存参数。
    # 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
    

    五. 总结

  • 相关阅读:
    mysql导sql脚本
    oracle导sql脚本
    基于jdk proxy的动态代理模式
    vue组件之组件的生命周期
    vue组件之组件间的通信
    python-爬虫scrapy框架安装及基本使用
    mongdb的使用
    python-爬虫 多线程爬虫
    python-爬虫 爬虫利器BeautifulSoup
    python-爬虫lxml库
  • 原文地址:https://www.cnblogs.com/guoew/p/10393231.html
Copyright © 2020-2023  润新知