/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 |
설명 |
---|---|
|
|
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
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 |
설명 |
---|---|
|
purge 동일 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
변경되지 않았다면 TTL연장만 있을 뿐 컨텐츠 다운로드는 발생하지 않는다. 그 외의 모든 동작은 purge 와 동일하다.
expireafter¶
타겟 컨텐츠의 TTL만료 시간을 현재(API호출시점)로부터 입력된 시간(초)만큼 뒤에 설정한다. expireafter로 만료시간을 앞당겨 컨텐츠를 더 빨리 갱신하거나, 반대로 만료시간을 늘려 원본서버 부하를 줄일 수 있다.
GET /command/expireafter
Query Parameter |
설명 |
---|---|
|
재정의한 |
|
purge 동일 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
함수 호출규격은 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 |
설명 |
---|---|
|
purge 동일 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
비동기 purge 등¶
purge , expire , hardpurge 에 대해 비동기 버전을 제공한다.
GET /command/async/expire
GET /command/async/purge
GET /command/async/hardpurge
Query Parameter |
설명 |
---|---|
|
purge 동일 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
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 |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
패키지 업데이트/재설치 API¶
CLI명령어인 m2 install 의 API 버전이다.
GET /command/install/{version}
Path Parameter |
설명 |
---|---|
|
설치 버전. 기본 값은 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
|
권한이 주어지지 않았음 |
다음은 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 버전이다.
GET /command/service/restart
GET /command/service/stop
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
|
권한이 주어지지 않았음 |
다음은 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¶
See also
대기 중인 모든 비동기 무효화 명령을 초기화한다.
GET /command/async/asynctrl/reset
vhost
를 지정하여 특정 가상호스트의 preCacheControl 만 초기화할 수 있다. 단, 비동기 무효화 항목은 삭제되지 않고 수행된다.
GET /command/async/asynctrl/prectrl/reset?vhost=foo.com
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
|
가상호스트를 찾을 수 없음 |
deprecated
¶
encryptpassword¶
라이선스에 기반해 plain
문자열을 암호화한다.
GET /command/encryptpassword
Query Parameter |
설명 |
---|---|
|
평문 |
Response code |
설명 |
---|---|
|
성공 |
|
실패. 잘못된 요청 |
|
실패. 서비스 프로세스 미구동 (라이선스 제한등) |
응답 Body에 암호문만 리턴한다.
E3uWTqeBvqbK9+rDBD/Zkw==
라이선스와 평문이 동일하다면 암호문도 같음을 보장한다.
See also