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

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

· 5년 전 · 4927 · 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는 없는듯한데
그건 홍보에 도움 되서 뺀건가요??
좋은 정보 감사해요~

게시글 목록

번호 제목
17523
17516
17515
17514
17498
17493
17490
17487
17485
17481
17478
17477
17474
17473
17472
17470
17469
17463
17462
17461
17460
17458
17457
17454
17453
17448
17447
17446
17445
17444