nginx 에서 크롤러 봇(crawler bot) 막기 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

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

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

본문

보통 웹사이트의 / 루트 디렉토리에 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/

 

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

추천
7

댓글 5개

운영자님 정말 몰라서 궁금해서 질문드립니다

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

구글도있는데 위에 운영자님께서 bot는 없는듯한데
그건 홍보에 도움 되서 뺀건가요??
전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT