설정 정책¶
설정기반의 메인 서비스 플로우는 아래와 같다.
재시작이 필요한 설정목록¶
아래 설정들은 서비스 성능과 안정성에 영향을 줄 수 있어 동적변경이 불가능하다.
env.properties.memoryUsage
env.properties.coreWorkers
env.properties.inspection
env.network.passiveSockets
env.network.http
env.network.https
env.network.http2
env.network.geoip
env.rt.localCacheStorage
env.rt.properties
변경 후 올바른 적용을 위해 서비스를 재시작해 주어야 한다.
$ m2 restart
CLI & API¶
CLI와 API로 설정변경을 진행한 경우 notupdated
필드가 추가된다.
{
"version": "1.1.0",
"method": "reloadall",
"status": "OK",
"result": "accepted",
"notupdated": [
{
"field": "env.properties.memoryUsage",
"cur": {
"totalUsableRatio": 100,
"workingRatio": 60,
"partition": "1:1"
},
"new": {
"totalUsableRatio": 90,
"workingRatio": 60,
"partition": "1:1"
}
},
{
"field": "env.network.http",
"cur": {
"recvBufferSize": 8192
},
"new": {
"recvBufferSize": 16384
}
}
]
}
setting.feedback¶
중앙동기화를 통해 재시작이 필요한 설정목록이 변경되면 setting.feedback 포맷 에 parameters.result.notupdated
필드가 추가된다.
{
"messageVer": "1",
... (생략) ...
"parameters": [
{
"url": "http://www.example.com/m2pkg_v10.tgz",
"result": {
"version": "22.02.0",
"method": "deploy",
"status": "ok",
"lastModified": "Tue, 15 Oct 2022 12:45:26 GMT",
"version": 10,
"notupdated": [
{
"field": "env.properties.memoryUsage",
"cur": {
"totalUsableRatio": 100,
"workingRatio": 60,
"partition": "1:1"
},
"new": {
"totalUsableRatio": 90,
"workingRatio": 60,
"partition": "1:1"
}
},
{
"field": "env.network.http",
"cur": {
"recvBufferSize": 8192
},
"new": {
"recvBufferSize": 16384
}
}
]
}
}
],
"setting": null
}
매칭조건 리스트¶
다음은 매칭조건을 지원하는 기능 테이블이다.
설정 |
레퍼런스 링크 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$URL[...]
과 $URLMATCH[...]
차이¶
$URL[ ]
은 클라이언트가 요청한 URL을 정규표현식에 따라 매칭/치환한다.
{
"pattern": "$URL[example.com/download/(.*)/(.*)]",
"replace": "#1.example.com/#2"
}
이 예제에서 (.*)
조건으로 매칭된 문자열이 #1
, #2
로 치환된다.
따라서 urlRewrites 는 치환을 위해 반드시 매칭이 선행되어야 하기에 “매칭되지 않음”을 의미하는 !URL[]
조건이 지원되지 않는 것이다.
여기에 아래와 같은 URL 필터링 조건이 추가된다면 $URL[ ]
표현으로 지원이 불가하다.
example.com/download/
하위 요청인데example.com/download/us/
하위 요청이 아니고example.com/download/uk/
하위 요청이 아닐 때
이런 경우 $URLMATCH[]
로 표현이 가능하다.
{
"pattern": "$URLMATCH[example.com/download/(.*)] & !URLMATCH[example.com/download/us/(.*)] & !URLMATCH[example.com/download/uk/(.*)] & $URL[example.com/download/(.*)/(.*)]",
"replace": "#1.example.com/#2"
}
$URL[...]
지원 리스트¶
$URL
은 단일 조건만 지원한다.
설정 |
|
|
표현 |
목적 |
---|---|---|---|---|
|
O |
X |
정규표현식 |
URL 치환 |
|
O |
X |
정규표현식 |
URL 치환 |
|
O |
X |
정규표현식 |
URL 치환 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
|
O |
O |
|
URL 매칭 |
$URLMATCH[...]
지원 리스트¶
$URLMATCH[...]
표현은 정규표현식만 사용하며 URL 패턴매칭 용도로만 사용된다.멀티조건과 부정조건을 모두 지원한다.
설정 |
|
|
---|---|---|
|
O |
O |
|
O |
O |
|
O |
O |
|
O |
O |
|
O |
O |
|
O |
O |
기타 지원 리스트¶
모든 표현은 부정표현도 같이 지원한다.
설정 |
|
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|---|
|
O |
O |
X |
X |
X |
O |
X |
X |
|
X |
O |
O |
X |
X |
X |
X |
X |
|
X |
X |
X |
X |
O |
X |
X |
X |
|
O |
O |
X |
X |
X |
O |
X |
X |
|
X |
X |
X |
O |
X |
X |
X |
X |
|
O |
O |
O |
X |
O |
X |
O |
X |
|
O |
O |
X |
X |
X |
O |
X |
X |
|
O |
O |
X |
X |
X |
O |
X |
X |
|
X |
X |
X |
X |
X |
X |
X |
X |
|
O |
O |
O |
X |
O |
X |
O |
X |
|
X |
X |
X |
X |
X |
X |
X |
X |
|
X |
X |
X |
X |
X |
X |
X |
X |
|
X |
X |
X |
X |
X |
X |
X |
O |