테스트 사이트 - 개발 중인 베타 버전입니다

nginx 에서 크롤러 봇(crawler bot) 막기

· 5년 전 · 4933 · 5

보통 웹사이트의 / 루트 디렉토리에 robots.txt 를 작성하면 크롤러가 잘 알아서 들어오던지, 피해가던지 해야 하는데 그런 기대를 하는 것은 무리인것 같습니다.

작성한대로 따라주지 않으니 방문자 확보에 도움이 안되고 무작정 퍼가기만 하는 크롤러는 막는게 서로(?)에게 좋습니다.

 

nginx 의 설정 파일에 다음과 같이 작성합니다.

그럼 robots.txt 를 무시하는 크롤러를 막을 수 있습니다.

 

 

    map $http_user_agent $limit_bots {
        default 0;
         ~*(bingbot|FeedDemon|GrapeshotCrawler|DuckDuckBot|MegaIndex) 1;
         ~*(VelenPublicWebCrawler|SimplePie|YandexBot|SCMGUARD|DotBot) 1;
         ~*(AhrefsBot|SemrushBot) 1;
    }

 

    server {


        location / {
            if ($limit_bots = 1) {
                return 403;
            }

 

        }

 

        location ~ \.php$ {

            if ($limit_bots = 1) {
                return 403;
            }

 

        }

 

 

 

# systemctl reload nginx

 

 

nginx 를 reload 한 후 log 를 살펴 보면

 

[2020-04-06T09:48:27+09:00] 200 - "GET /cma
[2020-04-06T09:48:29+09:00] 403 - "GET /qa/\compatible; SemrushBot/6~bl; +http://www.semrush.com/bot.html)" "-" "-"
[2020-04-06T09:47:58+09:00] 403 - "GET /ds_\ +http://yandex.com/bots)" "-" "-"
[2020-04-06T09:47:58+09:00] 403 - "GET /qa/\"-" "Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensite
[2020-04-06T09:47:59+09:00] 403 - "GET /so_\0; +http://yandex.com/bots)" "-" "-"
[2020-04-06T09:48:00+09:00] 403 - "GET /qa/\Bot/6~bl; +http://www.semrush.com/bot.html)" "-" "-"

[2020-04-06T09:48:01+09:00] 200 - "GET /qa/

 

위와 같이 잘 막고 있는 것을 확인 할 수 있습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 5개

5년 전
좋은정보 감사합니다.
감사합니다.
감사합니다
5년 전
운영자님 정말 몰라서 궁금해서 질문드립니다

duckduck 이런덴 검색사이트로 아는데
검색엔진에 올라가 홍보에 도움주지않는가요?

구글도있는데 위에 운영자님께서 bot는 없는듯한데
그건 홍보에 도움 되서 뺀건가요??
좋은 정보 감사해요~

게시글 목록

번호 제목
17043
17042
17025
17015
17001
16998
16994
16988
16985
16983
16981
16979
16978
16976
16968
16967
16957
16956
16955
16951
16950
16949
16932
16930
16913
16909
16906
16905
16904
16894