문서 설정 Rematch

Rematch

엄밀히 말해 실제 프록시 프로토콜이 아니라 특수한 아웃바운드입니다: 여기에 매칭되면 실제로 연결을 시작하지 않고, 트래픽에 태그를 붙인 후 규칙 매칭을 다시 수행합니다(또는 특정 서브 규칙으로 이동).

설정 예시

config.yaml YAML
proxies:
  - name: "rematch"
    type: rematch
    target-rematch-name: "rematch1"
    target-sub-rule: "sub-rule1"

필드 설명

target-rematch-name선택

트래픽 메타데이터의 rematch-name 태그를 덮어씁니다. 이후 REMATCH-NAME 규칙으로 이 태그를 매칭할 수 있습니다.

target-sub-rule선택

입력하면 지정한 서브 규칙으로 바로 이동해 계속 매칭합니다. 이름이 존재하지 않거나 비워두면 메인 rules로 돌아갑니다.

사용 예시

태그를 지정한 후 메인 규칙 계속 매칭
YAML rematch-name
proxies:
  - name: "mark-streaming"
    type: rematch
    target-rematch-name: "streaming"

rules:
  - REMATCH-NAME,streaming,Streaming
  - DOMAIN-SUFFIX,netflix.com,mark-streaming
  - MATCH,DIRECT

요청이 처음 DOMAIN-SUFFIX,netflix.com,mark-streaming에 매칭되면 트래픽에 rematch-name: streaming이 기록되고 규칙 매칭이 다시 시작됩니다. 이번에는 앞쪽의 REMATCH-NAME,streaming,Streaming이 우선 매칭됩니다.

REMATCH-NAME 규칙은 rematch를 발생시키는 규칙보다 앞에 작성해야 합니다. 그렇지 않으면 재매칭 시 같은 rematch 아웃바운드에 다시 매칭되어 무한 루프가 발생할 수 있습니다.

서브 규칙으로 이동
YAML sub-rule
proxies:
  - name: "use-ai-rules"
    type: rematch
    target-sub-rule: "ai-rules"

rules:
  - DOMAIN-SUFFIX,openai.com,use-ai-rules
  - MATCH,DIRECT

sub-rules:
  ai-rules:
    - DOMAIN-SUFFIX,openai.com,AI
    - MATCH,DIRECT

use-ai-rules에 매칭되면 바로 ai-rules 서브 규칙으로 이동해 계속 매칭합니다. 서브 규칙에는 어떤 규칙에도 매칭되지 않는 상황을 방지하기 위해 MATCH를 하나 추가하는 것을 권장합니다.