nginx 에서 이미지 직접 접근 차단 + IP허용

관련URL : https://jirak.net/wp/?p=32536

해당 포스트를 통해 nginx상에서 이미지 직접 접근 차단 (일명 : block hotlink) 에 대해 설명한 바 있다.

이 설정에 조건을 추가로 붙여야 하는 상황

 

1. 추가 조건

특정 아이피 주소에서는 block 되지 않고 이미지 출력

nginx는 다중 if 문을 지원하지 않기 때문에, 기존의 방식을 변경해야 했다

다중 if문만 지원했다면 훨씬 간단하게 처리가 가능했을 듯

 

 

2. 기존 해결 방법

valid_referers 를 통해
$invalid_referer 해당시 모두 403

 

 

3. 변경된 방식

2.1 white_client 이름의 추가 변수 선언

  • white_client = 0 : block 대상 => 403 응답
  • white_client = 1 : permit 대상 => 정상 응답
  • 기본값 : 0

 

2.2 white_client 값 생성 조건

  • 허용된 아이피 ($remote_addr)에서 접근시 : 1
  • valied_referes 에서 허용된 경우 : 1
  • 그 외 : 0

 

2.3 설정


set $white_client 0;

if ($remote_addr ~* "^123.45.67.89|^10.9.8.7") {
set $white_client 1;
}

valid_referers none blocked jirak.net *.jirak.net ;
if ($invalid_referer != "1") {
set $white_client 1;
}

if ($white_client = 0) {
return 403;
access_log off;
}

 

 

 

 

 

 

About KENNETH 19688 Articles
지락문화예술공작단

Be the first to comment

Leave a Reply

Your email address will not be published.


*


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.