레퍼러 스팸을 차단하는 사용자 지정 VCL 코드 조각 만들기

다음 사용자 지정 VCL 코드 조각 코드(JSON 형식)는 요청을 확인하고 차단하는 논리를 보여 줍니다. VCL 코드 조각은 레퍼러 웹 사이트의 호스트를 헤더로 캡처한 다음 호스트 이름을 referrer_blocklist 사전의 URL 목록과 비교합니다. 호스트 이름이 일치하면 403 Forbidden 오류가 발생하여 요청이 차단됩니다.

{
  "name": "block_bad_referrer",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if (req.http.Referer ~ \"^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$\") {set req.http.Referer-Host = re.group.2;}if (table.lookup(referrer_blocklist, req.http.Referer-Host)) {error 403 \"Forbidden\";}"
}

이 예제를 기반으로 코드 조각을 만들기 전에 값을 검토하여 변경해야 하는지 여부를 결정합니다.

  • name — VCL 코드 조각의 이름입니다. 이 예제에서는 block_bad_referrer을(를) 사용했습니다.

  • dynamic — 값 0은 Fastly 구성을 위해 버전이 지정된 VCL에 업로드할 일반 코드 조각을 나타냅니다.

  • priority — VCL 코드 조각이 실행되는 시기를 결정합니다. 기본 Magento VCL 코드 조각(magentomodule_*)에 우선 순위 50이 할당되기 전에 이 코드 조각 코드를 실행하는 우선 순위는 5입니다. 코드 조각을 실행할 시기에 따라 각 사용자 지정 코드 조각의 우선 순위를 50보다 높거나 낮게 설정합니다. 우선 순위가 낮은 번호가 있는 코드 조각이 먼저 실행됩니다.

  • type — VCL 버전에 코드 조각을 삽입할 위치를 지정합니다. 이 예에서 VCL 코드 조각은 recv 코드 조각입니다. 코드 조각이 VCL 버전에 삽입되면 기본 Fastly VCL 코드 아래 및 개체 위의 vcl_recv 서브루틴에 추가됩니다.

  • content - 한 줄에서 실행되는 줄 바꿈 없이 VCL 코드 조각입니다.

환경에 대한 코드를 검토하고 업데이트한 후 다음 방법 중 하나를 사용하여 사용자 지정 VCL 코드 조각을 Fastly 서비스 구성에 추가합니다.