/command API

명령어 관련 URL 은 아래와 같다.

http://{M2-IP:env.manager.api.port}/command/...

See also

  • env.manager.api.port - api

캐싱콘텐츠 무효화 API

purge

타겟 컨텐츠를 무효화시켜 원본서버로부터 컨텐츠를 다시 다운로드 받도록 한다.

GET /command/purge

Query Parameter

설명

url

대상 URL
  • 명확한 URL 또는 정규표현식이 아닌 * 가 포함된 패턴으로 지정할 수 있다.

  • | (Vertical Bar) 를 구분자를 사용하여 멀티 타겟 지정이 가능하며 동일 도메인인 경우 생략가능하다.

Response code

설명

200

성공

400

실패. 잘못된 요청

purge후 최초 접근 시점에 원본서버로부터 컨텐츠를 다시 캐싱한다. 만약 원본서버에 장애가 발생하여 컨텐츠를 가져올 수 없다면 무효화된 컨텐츠를 다시 복원시켜 서비스에 장애가 없도록 처리한다. 이렇게 복원된 컨텐츠는 해당 시점으로부터 session .connectTimeout 만큼 뒤에 갱신한다.

/command/purge?url=http://www.site1.com/image.jpg
/command/purge?url=www.site1.com/image.jpg
/command/purge?url=www.site1.com/image/bmp/
/command/purge?url=www.site1.com/image/*.bmp
/command/purge?url=www.site1.com/image1.jpg|/css/style.css|/script.js
/command/purge?url=www.site1.com/image1.jpg|www.site2.com/page/*.html

만약 도메인 이름이 생략되었다면 최근 사용된 도메인을 사용한다.

{
  "version": "22.2.0",
  "method": "purge",
  "status": "OK",
  "result": { "Count": 24, "Size": 3747491, "Time": 12 }
}

결과는 JSON형식으로 제공된다. 타겟 컨텐츠 개수/용량 및 처리시간(단위: ms)이 명시된다. 이미 purge 된 컨텐츠는 다시 purge되지 않는다.

purge .purge2expire 를 통해 특정조건의 purge를 expire로 동작하도록 설정할 수 있다. 결과없는 응답에 대해서는 purge .resCodeNoCtrlTarget 로 HTTP 응답코드를 설정할 수 있다.

Note

원본서버가 장애로 인해 모두 배제되었다면 컨텐츠를 갱신할 수 없기 때문에 purge가 동작하지 않는다.

expire

타겟 컨텐츠의 TTL을 즉시 만료시킨다. expire후 최초 접근 시점에 원본서버로부터 변경여부를 확인한다.

GET /command/expire

Query Parameter

설명

url

purge 동일

Response code

설명

200

성공

400

실패. 잘못된 요청

변경되지 않았다면 TTL연장만 있을 뿐 컨텐츠 다운로드는 발생하지 않는다. 그 외의 모든 동작은 purge 와 동일하다.

expireafter

타겟 컨텐츠의 TTL만료 시간을 현재(API호출시점)로부터 입력된 시간(초)만큼 뒤에 설정한다. expireafter로 만료시간을 앞당겨 컨텐츠를 더 빨리 갱신하거나, 반대로 만료시간을 늘려 원본서버 부하를 줄일 수 있다.

GET /command/expireafter

Query Parameter

설명

sec

재정의한 TTL (초)

url

purge 동일

Response code

설명

200

성공

400

실패. 잘못된 요청

함수 호출규격은 purge / expire 와 유사하지만 sec 파라미터(단위: 초)를 통해 TTL만료 시간을 지정할 수 있다. sec 파라미터 가 생략된다면 기본 값은 1일(86400초)로 설정되며 0을 입력할 경우 실패한다.

결과는 purge / expire 와 동일하지만 원본서버 장애여부와 상관없이 동작한다. 결과없는 응답에 대해서는 purge .resCodeNoCtrlTarget 로 HTTP 응답코드를 설정할 수 있다.

Note

expireafter 는 캐싱되어있는 컨텐츠의 현재 만료시간만을 설정할 뿐 커스텀 TTL이나 설정된 기본 TTL을 변경시키는 API가 아니다. expireafter 호출뒤에 캐싱된 컨텐츠들은 영향을 받지 않는다.

url 파라미터를 먼저 입력하는 경우 sec 파라미터가 url 파라미터의 QueryString으로 인식될 수 있다. 그러므로 sec 파라미터가 먼저 입력되는 것이 안전하다.

hardpurge

purge / expire / expireafter 이상의 API는 원본서버 장애상황에서도 컨텐츠가 사라지지 않고 정상적으로 동작한다. 하지만 hardpurge는 컨텐츠의 완전한 삭제를 의미한다.

hardpurge는 가장 강력한 삭제 방식이지만 삭제한 컨텐츠는 원본서버에 장애가 발생해도 되살릴 수 없다. 결과없는 응답에 대해서는 purge .resCodeNoCtrlTarget 로 HTTP 응답코드를 설정할 수 있다.

GET /command/hardpurge

Query Parameter

설명

url

purge 동일

Response code

설명

200

성공

400

실패. 잘못된 요청

비동기 purge 등

purge , expire , hardpurge 에 대해 비동기 버전을 제공한다.

GET /command/async/expire
GET /command/async/purge
GET /command/async/hardpurge

Query Parameter

설명

url

purge 동일

Response code

설명

200

성공

400

실패. 잘못된 요청

POST 규격

무효화 API를 다음과 같이 POST/x-www.form-urlencoded 방식으로 호출한다.

POST /command/purge HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 31

url=http://example.com/sample.dat

Response code

설명

200

성공

400

실패. 잘못된 요청

패키지 업데이트/재설치 API

CLI명령어인 m2 install 의 API 버전이다.

Warning

api 설정의 roles enableInstall 설정이 true 로 주어져야 한다.

GET /command/install/{version}

Path Parameter

설명

version

설치 버전. 기본 값은 lastest 이다.

Response code

설명

200

성공

400

실패. 잘못된 요청

403

권한이 주어지지 않았음

다음은 m2 install 예제의 API 버전 샘플이다.

[root@test-dev m2]# curl http://127.0.0.1:10040/command/install
{"status":"success","message":"Installing M2 v1.0.1 -> v1.0.5"}

[root@test-dev m2]# curl http://127.0.0.1:10040/command/install
{"status":"success","message":"v1.0.5 is the current(latest) version."}

[root@test-dev m2]# curl http://127.0.0.1:10040/command/install/1.0.4
{"status":"success","message":"Installing M2 v1.0.5 -> 1.0.4"}

[root@test-dev m2]# curl http://127.0.0.1:10040/command/install/1.0.4
{"status":"success","message":"v1.0.4 is the current version."}

[root@test-dev m2]# curl http://127.0.0.1:10040/command/install/1.1.0
{"status":"fail","message":"v1.1.0 is not available."}

패키지 재구동/중지 API

CLI명령어인 m2 가동/멈춤 의 API 버전이다.

Warning

api 설정의 roles enableRestart 설정이 true 로 주어져야 한다.

GET /command/service/restart
GET /command/service/stop

Response code

설명

200

성공

400

실패. 잘못된 요청

403

권한이 주어지지 않았음

다음은 m2 install 예제의 API 버전 샘플이다.

[root@test-dev m2]# curl http://127.0.0.1:10040/command/restart
{"status":"success"}

[root@test-dev m2]# curl http://127.0.0.1:10040/command/stop
{"status":"success"}

비동기 무효화 초기화 API

대기 중인 모든 비동기 무효화 명령을 초기화한다.

GET /command/async/asynctrl/reset

vhost 를 지정하여 특정 가상호스트의 preCacheControl 만 초기화할 수 있다. 단, 비동기 무효화 항목은 삭제되지 않고 수행된다.

GET /command/async/asynctrl/prectrl/reset?vhost=foo.com

Response code

설명

200

성공

400

실패. 잘못된 요청

404

가상호스트를 찾을 수 없음

deprecated

encryptpassword

라이선스에 기반해 plain 문자열을 암호화한다.

GET /command/encryptpassword

Query Parameter

설명

plain

평문

Response code

설명

200

성공

400

실패. 잘못된 요청

500

실패. 서비스 프로세스 미구동 (라이선스 제한등)

응답 Body에 암호문만 리턴한다.

E3uWTqeBvqbK9+rDBD/Zkw==

라이선스와 평문이 동일하다면 암호문도 같음을 보장한다.