[Nginx 설정 시리즈] Nginx Geo 와 Nginx 맵 모듈 을 기반 으로 Nginx 화이트 리스트 설정
2981 단어 nginx화이트 리스트 설정NginxGeoNginxMap
일반적인 상황 에서 nginx 를 사용 하여 ip 제한 방문 요청 빈도 등 제한 내용 을 사용 하면 우 리 는 특정한 ip 에 대해 제한 제거 작업 을 해 야 하기 때문에 본 고 는 nginx geo 와 nginx map 를 바탕 으로 이런 상황 과 관련 된 설정 을 도입 했다.
인위적인 조작 으로 삭제 되 지 않 은 상태 에서 (without - http geo module) nginx 기본 모듈 에 ngx - http - geo - module 관련 내용 을 불 러 왔 습 니 다.
ngx - http - geo - module 은 변 수 를 만 드 는 데 사용 할 수 있 고 변수 값 은 클 라 이언 트 ip 주소 에 의존 합 니 다.
ngx - http - map - module 은 다른 변수 와 변수 값 을 바탕 으로 변 수 를 만 들 수 있 습 니 다. 분 류 를 허용 하거나 여러 변 수 를 서로 다른 값 에 매 핑 하여 하나의 변수 에 저장 할 수 있 습 니 다.
ngx - http - map - module 관련 내용 은 인위적인 제거 가 아 닌 기본 nginx 에 도 존재 합 니 다 ( --without-http_map_module)
2. 관련 명령 형식
Nginx geo 형식 설명
Syntax ( ): geo [$address] $variable { ... }
Default ( ): -
Content ( ): http
Nginx map 형식 설명
Syntax ( ): map String $variable { ... }
Default ( ):-
Content ( ): http
3. 화이트 리스트 설정 예제
http{
# ...
# ip
geo $whiteiplist {
default 1 ;
#myself
127.0.0.1/32 0;
#remote ip
64.223.160.0/19 0;
}
# map ip
map $whiteiplist $limit{
1 $binary_remote_addr ;
0 "";
}
#
limit_req_zone $limit zone=foo:1m rate=10r/m;
}
server{
location /yourApplicationName {
proxy_pass http://192.168.1.111:8095/app;
# server zone = foo
limit_req zone=foo burst=5 nodelay;
}
}
화이트 리스트 설정 은 합작 고객, 검색엔진 등 요청 필터 제한 에 사용 할 수 있 습 니 다.
#( )
# , : Post , :
http{
# ..
# map
map $request_method $limit {
default "";
POST $binary_remote_addr;
}
#
limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
}
# server 。
server{
... #
}
# , , :
http{
#...
#
map $whiteiplist $limitips{
1 $binary_remote_addr;
0 "";
}
# ,
map $request_method $limit {
default "";
# POST $binary_remote_addr;
POST $limitips;
}
#
limit_req_zone $limit zone=reqlimit:20m rate=10r/s;
# server
server{
#...
}
# , api
# ,
server{
location /app {
proxy_pass http://192.168.1.111:8095/app;
limit_req zone=foo burst=5 nodelay;
}
location /app/api {
proxy_pass http://192.168.1.111:8095/app/api
}
}
# nginx , api
참고 자료
공식 문서 참조:
ngx-http-geo-module
ngx-http-map-module
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.