zoukankan      html  css  js  c++  java
  • goreplay 镜像nginx web app流量

    goreplay 是一个很不错的流量拷贝,复制工具,小巧,支持一些扩展,当然也提供了企业版,企业版
    功能更强大,支持二进制协议的分析
    备注: 演示使用docker-compose 运行,测试镜像流量到其他的两个web app (openresty)

    环境准备

    docker-compose 文件

     
    version: "3"
    services:
        nginx:
          build: ./
          ports:
          - "8080:80"
        app:
          image: openresty/openresty:alpine-fat
          ports:
          - "8090:80"
        app2:
          image: openresty/openresty:alpine-fat
          ports:
          - "8091:80"

    包含goreplay 的docker 配置

    • dockerfile
      使用了一个tini 的工具,方便后台任务运行,同时因为wget 二进制包太慢,所以直接下载add 了
     
    FROM openresty/openresty:alpine-fat
    LABEL author="1141591465@qq.com"
    COPY gor_0.16.1_x64.tar.gz .
    RUN apk add --update && apk add --no-cache tini 
        && tar xzf gor_0.16.1_x64.tar.gz -C /usr/local/bin 
        && rm gor_0.16.1_x64.tar.gz 
    ENV PATH=$PATH:/usr/local/bin
    ADD entrypoint.sh /entrypoint.sh
    ADD goreplay.sh /goreplay.sh
    ENTRYPOINT ["/sbin/tini","-s", "--", "/entrypoint.sh"]
     
    • entryppint.sh
    #!/bin/sh
    sh goreplay.sh
    exec /usr/local/openresty/bin/openresty -g "daemon off;" 
    • goreplay.sh
      goreplay 的运行命令,主要是进行流量的拷贝
     
    #!/bin/sh
    nohup goreplay --input-raw :80 --output-http "http://app" --output-http "http://app2" &

    运行&&效果

    运行

    docker-compose up -d
     

    效果

    我们访问nginx 8080 端口,其他端口的也会有数据流量,通过查看日志即可,从下边的日志我们可以看出
    nginx 日志较早,然后是app app2 请求时间是一样的

     
    docker-compose logs -f 
     

    说明

    类似的可以使用nginx 自带的mirror 指令,或者tcpcopy 。。。,同时goreplay 也支持kafka 的集成,还是很方便的

    参考资料

    https://github.com/buger/goreplay/wiki/Getting-Started
    https://github.com/rongfengliang/goreplay-openresty-demo

  • 相关阅读:
    【Todo】CSDN的《问底》系列-学习
    【Todo】深入PHP内核系列
    【转载】网络攻击技术(三)——Denial Of Service & 哈希相关 & PHP语言 & Java语言
    回溯法
    hdu 2842 Chinese Rings
    JSP 9 大内置对象详解
    用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)
    HDU2795 billboard【转化为线段树。】
    URAL 1303
    IOS文件沙盒
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10262106.html
Copyright © 2011-2022 走看看