Nginx 서버 에서 IP 를 차단 하 는 기본 설정 방법 공유
본 고 는 nginx 차단 ip 을 이용 하여 채집 을 방지 하 는 방법 을 소개 하 며, 당연히 iptable 을 통 해 이 루어 질 수 있 습 니 다.
1. 차단 할 ip 찾기
awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n
nginx. access. log 는 로그 파일 입 니 다.
다음 과 같은 결과 가 나 올 것 입 니 다. 앞 에는 ip 의 방문 횟수 이 고 뒤 에는 ip 입 니 다. 방문 횟수 가 많은 ip 을 차단 해 야 하 는 것 이 분명 합 니 다. 거미 의 ip 이 아 닙 니 다. 이 예 에서 우 리 는 차단 해 야 합 니 다.
165.91.122.67
...
13610 202.112.113.192
95772 180.169.22.135
337418 219.220.141.2
558378 165.91.122.67
2. nginx 의 설치 디 렉 터 리 아래 에 새 차단 ip 파일 을 만 들 고 Blockip. conf 라 고 명명 합 니 다. 나중에 차단 ip 을 새로 추가 하려 면 이 파일 만 편집 하면 됩 니 다.다음 과 같은 내용 을 추가 합 니 다.
deny 165.91.122.67;
저장 해.
3. nginx 의 프로필 nginx. conf 에 다음 설정 을 추가 하면 http, server, location, limit 에 넣 을 수 있 습 니 다.exception 구문 블록, 상대 경 로 를 주의해 야 합 니 다. 이 예 에서 nginx. conf, Blocksip. conf 는 같은 디 렉 터 리 에 있 습 니 다.
include blockip.conf;
4. nginx 서 비 스 를 다시 시작 합 니 다: / usr / local / nginx / nginx - s reload 가 적 용 됩 니 다.
고급 용법:
ip 를 차단 하 는 설정 파일 은 하나의 ip 도 차단 할 수 있 고 ip 세그먼트 도 차단 할 수 있 으 며, 특정한 ip 또는 특정한 ip 세그먼트 만 접근 할 수 있 습 니 다.
# ip
deny IP;
# ip
allow IP;
# ip
deny all;
# ip
allow all;
# 123.0.0.1 123.255.255.254
deny 123.0.0.0/8
# IP 123.45.0.1 123.45.255.254
deny 124.45.0.0/16
# IP 123.45.6.1 123.45.6.254
deny 123.45.6.0/24
이러한 애플 리 케 이 션 을 실현 하려 면 몇 개의 IP 를 제외 하고 모두 거부 하려 면 Blockip. conf 에 이렇게 써 야 합 니 다.
allow 1.1.1.1;
allow 1.1.1.2;
deny all;
단독 사이트 에서 IP 를 차단 하 는 방법, include blocksip. conf;사이트 주소 에 대응 하 는 server {} 구문 블록 에 넣 고 모든 사이트 에서 IP 를 차단 하 는 방법 은 include blocksip. conf 를 포함 합 니 다.http {} 구문 블록 에 넣 습 니 다.
접근 이 너무 잦 은 IP 스 크 립 트 를 차단 하려 면 실제 nginx log 형식 에 따라 변경 하고 접근 IP 와 User - agent 를 꺼 내야 합 니 다. nginx 설정 파일 에 설정 을 추가 해 야 합 니 다.
include ./vhost/blockip.conf;
스 크 립 트 내용:
#!/bin/bash
nginx_home=/usr/local/webserver/nginx
log_path=/usr/local/webserver/nginx/logs
tail -n50000 /usr/local/webserver/nginx/logs/access.log \
|awk '{print $1,$12}' \
|grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" \
|awk '{print $1}'|sort|uniq -c|sort -rn \
|awk '{if($1>1000)print "deny "$2";"}' >$nginx_home/conf/vhost/blockip.conf
/etc/init.d/nginx reload
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.