Linux 데이터 복사 도구
6534 단어 nginx
몇 가지 데이터 복사 도구:
Nginx 모듈 ngxhttp_mirror_module
설정 은 다음 과 같 습 니 다:
server {
listen 8080;
access_log /home/work/log/nginx/org.log;
root html/org;
}
server {
listen 8081;
access_log /home/work/log/nginx/mir.log ;
root html/mir;
}
upstream backend {
server 127.0.0.1:8080;
}
upstream test_backend {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
mirror /mirror;
proxy_pass http://backend;
}
location /mirror {
internal;
proxy_pass http://test_backend$request_uri;
}
}
유량 확대, 두 개의 mirror 를 설정 하면 됩 니 다.
location / {
mirror /mirror;
mirror /mirror;
proxy_pass http://backend;
}
사용 하 는 것 은 매우 편리 하지만 온라인 nginx 는 보통 하나의 업무 만 탑재 하 는 것 이 아니 라 nginx 설정 을 수정 한 후에
nginx -s reload
이 효력 을 발생 시 켜 야 합 니 다. 이런 조작 은 온라인 에서 최대한 피해 야 합 니 다.gor https://github.com/buger/goreplay
고 르 개술
Gor 는 Golang 으로 작성 한 HTTP 실시 간 데이터 복사 도구 입 니 다.기능 이 더욱 강하 고 데이터 의 확대, 축소, 주파수 제한 을 지원 하 며 요청 을 파일 에 기록 하여 재생 과 분석 을 편리 하 게 할 수 있 으 며 ElasticSearch 와 통합 하여 데 이 터 를 ES 에 저장 하여 실시 간 으로 분석 하 는 것 도 지원 합 니 다.
다운로드 설치, 컴 파일 된 바 이 너 리 파일 을 다운로드 하여 직접 사용 할 수 있 습 니 다.
> wget https://github.com/buger/goreplay/releases/download/v0.16.1/gor_0.16.1_x64.tar.gz
> tar xzvf gor_0.16.1_x64.tar.gz
파일 로 데이터 복사
데 이 터 를 파일 로 복사 한 후에 다시 재생 할 수 있 습 니 다.재생 할 때, 유량 은 원래 의 시간 간격 을 유지 할 것 이다.만약 당신 이 백분율 로 속 도 를 제한 했다 면, 재생 속 도 는 상응 하 게 증가 하거나 감소 할 것 입 니 다.이런 속도 제한 이 있 으 면 gor 는 압력 테스트 를 할 수 있다.
#write to file
gor --input-raw :80 --output-file requests_origin.gor
#read from file
gor --input-file requests_origin.gor --output-http "http://localhost:8081"
타임 스탬프 이름 으로 파일 을 녹화 할 수 있 습 니 다. 기본적으로 파일 은 '블록' 에 따라 저 장 됩 니 다. 즉, 파일 크기 가 상한 선 에 도달 한 후 접 두 사 를 추가 하고 다른 파일 을 새로 만 듭 니 다. 다음 과 같 습 니 다.
gor --input-raw :80 --output-file %Y%m%d.gor
#append false
20140608_0.gor
20140608_1.gor
20140609_0.gor
20140609_1.gor
기본 값 은 '블록' 으로 파일 을 저장 하 는 방식 이지 만 매개 변 수 를 설정 할 수 있 습 니 다. - output - file - append, 사용 후 다음 과 같 습 니 다.
gor --input-raw :80 --output-file %Y%m%d.gor --output-file-append
#append true
20140608.gor
20140609.gor
시간 포맷 파일 이름 설정 설명:
%Y: year including the century (at least 4 digits)
%m: month of the year (01..12)
%d: Day of the month (01..31)
%H: Hour of the day, 24-hour clock (00..23)
%M: Minute of the hour (00..59)
%S: Second of the minute (00..60)
%Y%m%d%H
유량 재생
현재 이런 방식 은 'input - file' 만 지원 하고 재생 속 도 를 백분율 로 만 제어 할 수 있다.이 재생 속도 비율 은 input 에 대비 되 어 있 음 을 주의 하 세 요.녹 음 된 데이터 의 시간 스탬프 에 따라 재생 하 는 것 이다.
2 배 속도 로 재생
gor --input-file "requests_origin.gor|200%" --output-http "http://localhost:8081"
"input - fly" 가 여러 파일 이 라면 정규 로 일치 할 수 있 습 니 다. gor --input-file "requests_origin*.gor|200%" --output-http "http://localhost:8081"
다음 설정 매개 변수 에 맞 춰 압력 테스트 --input-file-loop
를 더 잘 할 수 있 습 니 다.분 의 단 위 는 m 이다.Gor 상용 명령
간단 한 HTTP 데이터 복사
--exit-after 30s
HTTP 트 래 픽 복사 주파수 제어 (초당 10 개 이상 요청 가 져 오기) > gor --input-raw :80 --output-http "http://localhost:8081"
HTTP 데이터 복사 축소 > gor --input-tcp :28020 --output-http "http://localhost:8081|10"
HTTP 트 래 픽 을 로 컬 파일 에 기록 > gor --input-raw :80 --output-tcp "http://localhost:8081|10%"
HTTP 데이터 재생 과 압력 측정 > gor --input-raw :80 --output-file requests_origin.gor
HTTP 데이터 필터 복제> gor --input-raw :8080 --output-http http://localhost:8081 --output-http-url-regexp ^www.
데이터 복사 인자 사용자 정의
> gor --input-raw :80 --output-http http://localhost:8081 --http-allow-method POST --http-set-header 'User-Agent: Gor' -output-http-workers=1 -http-allow-url test.php
데이터 복사 두 부 를 다른 테스트 서비스 로 복사 합 니 다.
> gor --input-tcp :8080 --output-http "http://localhost:8081" --output-http "http://localhost:8082"
데이터 를 부하 균형 처럼 다른 서버 에 분배 하 다
> gor --input-tcp :8080 --output-http "http://localhost:8081" --output-http "http://localhost:8082" --split-output true
Gor 설정 매개 변수
> gor --help
-http-allow-header value
gor --input-raw :8080 --output-http localhost:8081 --http-allow-header api-version:v1.1
http , ,
-http-allow-method value
gor --input-raw :8080 --output-http localhost:8081 --http-allow-method GET
http , .
-http-allow-url value
gor --input-raw :8080 --output-http localhost:8081 --http-allow-url ^www
url, url,
-http-disallow-header value
gor --input-raw :8080 --output-http localhost:8081 --http-disallow-header "User-Agent: Replayed by Gor"
http ,
-http-disallow-url value
gor --input-raw :8080 --output-http localhost:8081 --http-disallow-url ^www
url, ,
-http-set-header value
gor --input-raw :8080 --output-http localhost:8081 --http-set-header 'User-Agent: Gor'
,
-http-set-param value
gor --input-raw :8080 --output-http localhost:8081 --http-set-param api_key=v1.1
,
https://github.com/buger/goreplay/wiki
작성 자: JouyPub 링크:https://www.jianshu.com/p/03f74521c592 출처: 간 서 간 서 저작권 은 작가 의 소유 이 며, 어떠한 형식의 전재 도 작가 에 게 연락 하여 권한 을 수 여 받 고 출처 를 밝 혀 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.