Nginx Proxy Manager에서 Hotlink 설정하기.

안녕하세요. 달소입니다.

오늘은 nginx에서 외부 Hotlink를 차단하는방법에 대한 포스팅입니다.

Hotlink란?

핫링크는 제 블로그,사이트의 이미지 타 커뮤니티에서 그대로 복사 붙여넣기로 퍼가는경우 <img> 태그에 제 사이트의 주소가 걸리게됩니다.

이럴경우 해당페이지가 읽힐때마다 제사이트의 트래픽을 낭비하게 되는셈이지요. 추가로 컨텐츠도 보호할 수있구요.

Hotlink가 되어있는지 안되어있는지는 간단하게 curl 명령어로 확인해볼 수 있습니다.curl -I –referer [아무사이트] [이미지주소]

아래처럼 200이되면 어디서 긁어가도 모릅니다..ㅎㅎ

설정환경

Nginx Proxy Manager 2.9.4

설정하기

저는 간단하게 특정 파일을 긁어갈 경우 403 page를 리턴시키는 방식으로 진행하겠습니다.

구글링하게되면 정보가 많지만 원하는 사진을 띄워줄 수 도 있습니다.

허용도메인 목록은 svrforum.com google.com 이런식으로 스페이스바로 구분해주시면되며
access_log로 어느사이트에서 아래 확장자들을 긁어가는기도 확인할 수 있습니다. 여기서 허용하고싶으면 허용 도메인목록에 넣어주시면됩니다.

제 웹서버 환경이 Nginx를 사용하고 있고 NPM으로 Proxy를 사용하고있기때문에 Nginx Proxy Manager를 기준으로 작성해보겠습니다.

### 이미지 Hotlink 적용하기
location ~* \.(jpg|jpeg|png|gif|zip)$ { 
    valid_referers none blocked [허용도메인 목록]; 
        if ($invalid_referer) { 
            access_log /var/log/nginx/hotlink-access.log;
            return 403; }             
    }

저같은경우 허용 도메인목록을 제가 운영하는 사이트 + google,naver,daum,bing 같은 사이트만 넣었습니다.