2. Nginx 상용 모듈 - IP 흑백 명단
4342 단어 openresty
IP 흑백 명단 을 설정 하기 전에 우 리 는 먼저 사용 하 는 모듈 을 알 아야 한다.http_access_module ngx_http_geo_module ngx_http_map_module
IP 액세스 제어 모듈 httpaccess_module
Nginx 의 deny 와 allow 명령 은 모듈 에서 제공 되 며, Nginx 는 기본적으로 이 모듈 을 내장 합 니 다.설치 할 때 지정 하지 않 는 한 -- without - httpaccess_module。 특정 IP 에 대한 접근 제어 에 사용 되 는 기본 값 은 모든 IP 접근 을 허용 합 니 다. 일부 허용 되 는 경우 deny all 을 정의 해 야 합 니 다.
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 47.98.147.49;
deny all;
}
예 를 들 어 일부 디 렉 터 리 에 있 는 일부 파일 의 접근 을 제한 할 수 있 고 구체 적 으로 스스로 조합 할 수 있다.
location ~.*\.(sql|log|txt|jar|war|sh|py|php) {
deny all;
}
ngx_http_geo_module
ngx_http_geo_module 모듈 은 변 수 를 만 들 고 클 라 이언 트 IP 주소 에 따라 변 수 를 할당 합 니 다.문법: geo [$address] $variable {...} 기본 값: - 문맥: http
geo $geo {
default 0;
127.0.0.1/32 2;
192.168.1.0/24 1;
10.1.0.0/16 1;
}
지정 한 변수 에서 클 라 이언 트 의 IP 주 소 를 가 져 오 는 것 을 정의 합 니 다.기본적으로 nginx 는 $remoteaddr 변 수 는 클 라 이언 트 IP 주 소 를 얻 지만 다른 변수 에서 도 얻 을 수 있 습 니 다 (0.7.27 버 전). 예 를 들 어:
geo $arg_remote_addr $geo {
...;
}
ngx_http_map_module
문서:http://tengine.taobao.org/nginx_docs/cn/docs/http/ngx_http_map_module.html
모듈 ngxhttp_map_module 는 다른 변수 와 연 결 된 변 수 를 만 들 수 있 습 니 다.문법: map string $variable {...} 기본 값: - 문맥: http
원본 변수 값 이 변수 와 일치 하지 않 으 면 기본 값 을 결과 로 설정 합 니 다.default 이 설정 되 어 있 지 않 으 면 빈 문자열 을 기본 결과 로 사용 합 니 다.원본 값 이 지정 한 변수 와 일치 합 니 다. 예 를 들 어 마스크 와 정규 가 동시에 일치 하면 다음 순서 로 우선 선택 합 니 다. 1. 마스크 가 없 는 문자열 2. 가장 긴 접두사 가 있 는 문자열, 예 를 들 어 'example. com' 3. 가장 긴 접두사 가 있 는 문자열, 예 를 들 어 'mail.' 4. 순서대로 첫 번 째 로 일치 하 는 정규 표현 식 입 니 다.(프로필 에 나타 나 는 순서) 5. 기본 값
여기 서 매개 변 수 를 사용 합 니 다: 이름: a r g P A R A M E T E R H T P 설명: 요청 한 매개 변수의 값, 예 를 들 어 / i n d e x. p h p? s i t e = w w. b a i d u. c o m, arg PARAMETER HTTP 로 설명 할 수 있 습 니 다: 요청 한 매개 변수의 값, 예 를 들 어 / index. phop? site = www. baidu. com, argP ARMETERHTTP 로 설명 할 수 있 습 니 다: 요청 중의 한 매개 변수의 값, 예 를 들 어 / index. phop? site = www. baidu. com.매개 변수의 값, 예 를 들 어 / index. php? site = www. baidu. com 은 arg site 로 www. baidu. com 이라는 값 을 얻 을 수 있 습 니 다. 여기 서 우 리 는 매개 변수 name 을 사용 하여 geo 에 게 IP (IP 여야 함) 를 부여 한 다음 에 $name 이 geo 의 값 에 따라 서로 다른 정 보 를 되 돌려 주 고 geo 와 결합 하여 인 스 턴 스 를 사용 합 니 다.
http
geo $arg_name $geo {
default 0;
127.0.0.1 1;
1.2.3.4 2;
1.2.3.5 3;
}
map $geo $name{
0 default;
1 forbin;
2 allow;
3 other;
}
server :
location = /test1 {
default_type text/html ;
return 200 $name;
}
웹 방문 반환
http://localhost/test1 =>default
http://localhost/test1?name=1.2.3.5 =>other
IP 흑백 리스트
IP 흑백 목록 설정 을 위해 이 세 가지 모듈 을 사용 할 수 있 습 니 다. 여기 서 우 리 는 화이트 리스트 만 분석 합 니 다. 우 리 는 우리 가 허용 하 는 네트워크 만 접근 할 수 있 기 를 바 랍 니 다. 다른 것 은 접근 할 수 없습니다. 그 중에서 geo 기본 값 은 $reote addr 에서 IP 를 가 져 옵 니 다. 테스트 를 편리 하 게 하기 위해 url 의 매개 변수 name 에서 IP 를 가 져 옵 니 다. geo 와 return 까지 만 사용 합 니 다.
#http :
#0 ,1 ( )
geo $arg_name $geo {
default 0;
1.2.3.0/24 1;
}
map $geo $name{
0 "";
1 $remote_addr;
}
#server :
location = /test1 {
if ( $geo != 1 ) {
return 403;
}
default_type text/html ;
return 200 $name;
}
WEB 방문
http:/localhost/test1?name=1.2.3.4=>
http:/localhost/test1?name=1.2.4.4=> 403
http:/localhost/test1=> 403
총결산
ngx http core module ngx http access module 접근 제어 모듈 ngx http gzip module ngx http fastcgi module ngx http proxy module ngx http upstream module ngx http rewrite module ngx http limit conn module 사용자 의 병렬 연결 수 및 요청 수 모듈 ngx http limit req module 이 정 의 된 key 에 따라 ngx 요청 과정의 속 도 를 제한 합 니 다 ngx http log modungx http auth basic module 웹 인증 모듈 ngx http ssl module ngx http stub status module ngx 기본 액세스 상태 정보 등 을 기록 하 는 모듈
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Openresty 및 Google BigQuery를 사용한 마이크로서비스 사용량 로깅Descartes Labs에서는 플랫폼 구축에 마이크로서비스 아키텍처를 사용해 왔습니다. Descartes Labs의 마이크로서비스 로깅, 특히 사용 로깅의 주요 요구 사항은 전체 위성 이미지 모음에 대한 API 액...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.