Nginx 보안 접근 설정
# IP $binary_remote_addr Key, IP 50
# ? 50 , 503 ,
# limit single IP 50 concurrent control
limit_conn_zone $binary_remote_addr zone=TotalConnLimitZone:20m ;
limit_conn TotalConnLimitZone 50;
limit_conn_log_level notice;
# IP $binary_remote_addr Key, IP 20
# , , , 503
# limit single IP/s 20 Request
limit_req_zone $binary_remote_addr zone=ConnLimitZone:20m rate=20r/s;
limit_req_log_level notice;
중 "limit conn zone $binary remote addr zone = TotalConnLimitZone: 20m;" 는 TotalConnLimitZone 이라는 저장 영역 을 정의 하 며 크기 는 20M 입 니 다."limit req log level notice;" 는 log 단 계 를 정의 합 니 다.그 중에서 "limit req zone $binary remote addr zone = ConnLimitZone: 20m rate = 25r / s;" 는 ConnLimitZone 이라는 저장 영역 을 정의 하고 ConnLimitZone 내용 은 원 격 IP 주소 이 며 ConnLimitZone 크기 는 20m 이 며 ConnLimitZone 의 평균 요청 속 도 는 초당 20 개 입 니 다."limit req log level notice;" 는 log 단 계 를 정의 합 니 다.이상 설정 은 server 모듈 ...
location /abc/ {
limit_req zone=ConnLimitZone burst=5 nodelay;
proxy_pass http://abc_pool/;
}
...
에 적 용 됩 니 다. 그 중에서 "zone = ConnLimitZone" 설정 은 어느 설정 영역 을 사용 하여 제한 합 니까? 위 limitreq_zone 의 name 대응;burst = 5, burst 폭발 이라는 뜻 입 니 다. 이 설정 은 크기 가 5 인 버퍼 를 설정 하 는 것 입 니 다. 대량의 요청 (폭발) 이 올 때 방문 빈도 제한 을 초과 한 요청 은 이 버퍼 에 먼저 넣 을 수 있 습 니 다. 따라서 총 초당 처리 요청 은 위의 20 + 5 개의 줄 입 니 다.nodelay, 설정 하면 방문 빈도 가 초과 되 고 버퍼 가 가득 차 면 503 으로 돌아 갑 니 다. 설정 이 없 으 면 모든 요청 이 줄 을 기다 리 고 있 습 니 다.# IP
map $http_x_forwarded_for $clientRealIp {
"" $remote_addr;
~^(?P[0-9\.]+),?.*$ $firstAddr;
}
# limit single IP 50 concurrent control, $binary_remote_addr $clientRealIp,$clientRealIp Key
limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
limit_conn TotalConnLimitZone 50;
limit_conn_log_level notice;
# limit single IP/s 20 Request, $binary_remote_addr $clientRealIp,$clientRealIp Key
limit_req_zone $clientRealIp zone=ConnLimitZone:20m rate=20r/s;
limit_req_log_level notice;
#
server {
listen 80;
location ~ \.php$ {
limit_req zone=ConnLimitZone burst=5 nodelay;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
server {
listen 80;
server_name www.aaa.com;
## /nginx-test , $clientRealIp , , IP
location /nginx-test {
echo $clientRealIp;
}
}
을 직접 보 여 줍 니 다. 인터넷 주 소 를 방문 하여 nginx - test 를 연결 하고 다운로드 한 후에 텍스트 컴 파일 러 로 열 면 사용자 측 이 다 층 CDN 을 통과 한 후에 도 $client RealIp 는 여전히 유효한 원시 사용자 IP 주소 입 니 다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.