【 Nginx 】 다운로드, 속도 제한 요청, URL 매개 변수 에 따라 속도 제한
다운로드 속도 제한
location /download { limit_rate 128k; }
# 10m , 10m 128kb/s , nginx.conf
location /download { limit_rate_after 10m; limit_rate 128k; }
IP 연결 및 병발 제한
http{
...
# allips limit_req_zone session, 10M ,
# $binary_remote_addr key, 20 , 503
#1M 16000 ,rete ,
# , 30r/m
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
...
server{
...
location / {
...
# ip 20 , burst 5
#brust , 1 、2,3,4 19 ,
# 5 25 。
# 1 25 , 2 20 503 。
#nodelay, , ,
# 1 25 ,5 2 ,
# nodelay,25 1 。
limit_req zone=allips burst=5 nodelay;
...
}
...
}
...
}
위의 설정 에서 key 는
$binary_remote_addr
이 므 로 IP 에 따라 속 도 를 제한 하 는 것 이 라 고 할 수 있 습 니 다. 사실은 IP 뿐만 아니 라 $server_name
등 다른 Nginx 변수 나 사용자 정의 변수 로 수요 에 따라 설정 할 수 있 습 니 다.단일 IP 의 같은 시간 연결 수 를 제한 합 니 다.
http{
...
# one limit_zone, 10M session,
# $binary_remote_addr key, IP
# http
limit_conn_zone $binary_remote_addr zone=one:10m;
...
server{
...
location {
...
limit_conn one 20; # , 503
# , , ip , 500x2k
#limit_rate 500k;
...
}
...
}
...
}
매개 변수 에 따라 uri 의 특수 문자 로 속 도 를 제한 합 니 다.
사용 자 는 모두 NAT 이후 에 서버 를 연결 하기 때문에 IP 에 따라 제한 할 수 없 지만 모든 사용자 가 방문 할 때의 URL 은 사용자 의 유일한 매개 변 수 를 가지 고 있 기 때문에 이 럴 때 url 매개 변 수 를 사용 하 는 것 이 ip 보다 제한 적 인 의 미 를 가진다.아래 설정 의 의 미 는
/hello
이 요청 에서 lan 매개 변수 와 같은 요청 은 1 초 에 한 번 만 요청 할 수 있 습 니 다. lan 매개 변 수 를 사용자 의 IP 로 비교 할 수 있 습 니 다. 각 IP 는 1 초 에 한 번 만 서버 에 접근 할 수 있 습 니 다.다른 선택
map $arg_lan $name {
default $arg_lan;
"~*python" python;
"~*golang" golang;
}
limit_req_zone $name zone=xspython:10m rate=1r/s;
server {
listen 8001;
server_name localhost;
location /hello {
limit_req_log_level notice;
limit_req zone=xspython burst=1 nodelay;
echo hello $name;
}
location ~ /hi {
#
echo hi;
}
}
단순 테스트 스 크 립 트
#!/bin/bash
#limit_test1.sh
#orangleliu
# key,
# key,
# access.log
op=$1
url="http://127.0.0.1:8001/hello?lan="
if [ $1 = "1" ];then
echo " "
for i in {1..5};do
for j in {1..5};do
curl "${url}python"
done
sleep 1
done
else
echo " "
lanname=(python java golang c lua)
for i in {1..5};do
for j in "${lanname[@]}"; do
curl "${url}${j}"
done
sleep 1
done
fi
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.