proxy

/usr/local/m2/setting.json 다음 영역에 대해 기술한다.

{
  "functions": {
    "network": {
      "proxy": {
        ...
      }
    }
  }
}

How to use

명령어 리스트

proxy 함수는 원본을 결정하기 때문에 항상 가장 앞에 위치한다. 단, /proxy/src/cache 처럼 함수체인의 라우팅에 개입하는 특수 조건인 경우 맨 뒤에 위치시킨다.

# https://foo.com/sample.jpg 를 캐싱한다.
https://example.com/proxy/src/https://foo.com/sample.jpg

# https://foo.com/sample.jpg 를 캐싱할 때 Host 헤더로 example.com를 설정한다.
https://example.com/proxy/host/example.com/src/https://foo.com/sample.jpg

# 위 트랜잭션이 5초 이상 소요된다면 10분(=600초)을 TTL로 부여한다.
https://example.com/proxy/host/example.com/ttl/elapsed=5;value=600;/src/https://foo.com/sample.jpg

# 위 트랜잭션이 1.8초 이상 소요된다면 1시간(=3600초)을 TTL로 부여한다.
https://example.com/proxy/host/example.com/ttl/elapsed=1.8;value=3600;/src/https://foo.com/sample.jpg

# 어떠한 요청이라도 맨 뒤에 /proxy/src/cache 를 붙여 캐싱되도록 통제한다.
https://example.com/bypass.html/proxy/src/cache

원본지정

https://example.com/proxy/src/https://foo.com/sample.jpg

명령어

파라미터

동작

src

MUST (인코딩 없는)URL 문자열

입력된 임의의 URL을 원본서버로 사용한다. 예약어인 cache 를 입력하면 강제로 캐싱한다.

host

OPTION 문자열

Host 헤더를 지정한다. 입력하지 않을 경우 src 의 도메인명을 사용한다.

위 예제에서 foo.com 으로 전송되는 HTTP 요청은 다음과 같다.

GET /sample.jpg HTTP/1.1
Host: foo.com

Host 헤더는 지정된 src 의 도메인을 추출하여 사용한다. 이 값을 변경하고 싶다면 다음과 같이 host 명령어를 사용한다.

https://example.com/proxy/host/foobar.com/src/https://foo.com/sample.jpg

위 호출은 이전과 동일하게 전송되지만 Host 헤더는 변조된다.

GET /sample.jpg HTTP/1.1
Host: foobar.com

Warning

srchost 명령어를 같이 사용할 경우 반드시 아래 순서대로 입력해 주어야 한다.

.../proxy/host/.../src/...

TTL 조정

트랜잭션이 완료되는 시점에 TTL (=캐싱시간)을 조정한다.

명령어

파라미터

ttl

X-M2X-Var-Cache-Ttl 헤더의 값 ( X-M2X-Var- 확장헤더 참조)

# 트랜잭션 완료시점부터 1000초 부여한다.
https://example.com/proxy/ttl/1000/src/http://holly.speedgabia.com/img2/1202J8_01.jpg?a=sadjsalkj
https://example.com/proxy/ttl/value=1000/src/http://holly.speedgabia.com/img2/1202J8_01.jpg?a=sadjsalkj
https://example.com/proxy/ttl/elapsed=0;value=1000/src/http://holly.speedgabia.com/img2/1202J8_01.jpg?a=sadjsalkj

# 트랜잭션 완료시간이 5초를 넘으면 트랜잭션 종료시점부터 1000초 부여된다.
https://example.com/proxy/ttl/elapsed=5;value=1000/src/http://holly.speedgabia.com/img2/1202J8_01.jpg?a=sadjsalkj

에러 메시지

See also

응답코드

x-sc-chain-error 필드

설명

500

ct

connect timeout

500

rt

receive timeout

500

abort

aborted

abort 되면 자동으로 purge된다.

meta

"meta" : {
  "enable" : false,
  "keyword": "proxy",
  "routeToLocal": false
}
enable (기본: false)

proxy 활성화

keyword (기본: proxy)

proxy 키워드

routeToLocal (기본: false)

src가 내가 서비스하는 도메인이라면 Local로 라우팅한다.

Note

별도의 TTL 설정을 가지지 않고, ttl 정책을 따른다.