레퍼러 스팸을 차단하는 사용자 지정 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 서비스 구성에 추가합니다.
-
관리자로부터 사용자 지정 VCL 코드 조각을 추가합니다. 관리자에 액세스할 수 있는 경우 이 방법이 권장됩니다. (Fastly 버전 1.2.58 이상이 필요합니다.)
-
JSON 코드 예제를 파일(예:
allowlist.json
)에 저장하고 Fastly API를 사용하여 업로드합니다. 관리자에 액세스할 수 없는 경우 이 메서드를 사용합니다.