vars
출처: Caddy 공식 문서
본문
나중에 요청 처리 체인에서 사용할 수 있도록 하나 이상의 변수를 특정 값으로 설정해요.
변수에 접근하는 주된 방법은 {vars.variable_name} 형태의 플레이스홀더를 쓰거나, vars와 vars_regexp 요청 매처를 사용하는 거예요.
templates 지시문에서 placeholder 함수와 함께 변수를 사용할 수도 있어요. 예를 들어: {{placeholder "http.vars.variable_name"}}
특별한 경우로, replacer에 저장된 http.auth.user.id 변수를 덮어써서 액세스 로그의 user_id 필드를 업데이트할 수도 있어요.
문법
vars [<matcher>] [<name> <value>] {
<name> <value>
...
}
-
은 설정할 변수 이름이에요.
-
는 변수의 값이에요.
가능하면 값은 타입 변환이 돼요. true와 false는 불리언 타입으로, 숫자 값은 정수나 부동소수점으로 변환돼요. 이 변환을 피하고 문자열로 유지하고 싶다면 따옴표로 감싸면 돼요.
예제
단일 변수를 설정하고, 값은 요청 경로에 따라 조건부로 정한 뒤 그 값으로 응답하는 예시예요:
example.com {
vars /foo* isFoo "yep"
vars isFoo "nope"
respond {vars.isFoo}
}
각각 적절한 스칼라 타입으로 변환되는 여러 변수를 설정하는 예시예요:
vars {
# boolean
abc true
# integer
def 1
# float
ghi 2.3
# string
jkl "example"
}