설정 템플릿

메인페이지 설정 템플릿을 제공한다.

{
   "hosting": [
       {
           "name": "www.example.com",
           "mode": {
               "volatile": true
           },
           "origin": {
               "protocol": "https",
               "address": [
                   "org.example.com"
               ]
           },
           #웹페이지 최적화를 적용할 URL을 정의 한다.
           #/pagedesk/edit/default/mxt/main : pagedesk와 pagemixed 기능을 사용 한다.
           #/optimg/default : 이미지를 설정에 맞게 최적화 한다.
           #/optvideo/default : MP4 비디오를 WebM 포맷으로 최적화 한다.
           #/optscript/default : 웹 문서의 초기 로딩속도 향상을 위해 스크립트 로딩을 최적화 한다.
           #참고 : https://doc.m2live.co.kr/references/settings/hosting.html#urlrewrites
           #참고 : https://doc.m2live.co.kr/references/settings/functions/contents/pagespeed.html#pagespeed-alpha
           "urlRewrites": [
               {
                   "pattern": "!FUNCTION[*] & !HEADER[Sec-Fetch-Dest: empty] & $URL[^www.example.com/(.*)]",
                   "replace": "www.example.com/#1/pagespeed/optimg/default/optscript/default/optvideo/default",
                   "accessLogUrl": "replace"
               }
           ],
           "functions": {
               "network": {
                    "http": {
                       "frontEnd": {
                           #클라이언트 세션과 아무런 통신이 없는 상태로 설정된 시간이 경과하면 세션을 종료 한다.
                           #앞단에 ALB의 경우 기본값이 60초, 뒷단에 있는 M2는 이보다 2초 큰 값을 설정 한다.
                           #참고 : https://doc.m2live.co.kr/references/settings/functions/network/http.html?highlight=keepalivesec#session
                           "session": {
                               "keepAliveSec": 62
                           },
                           #캐싱 되는 URL은 원본 요청시 referer , X-Forwarded-Host를 추가하여 요청 한다.
                           #클라이언트 응답시 CORS를 고려하여 Access-Control-Allow-Origin 헤더를 추가하여 응답
                           #https://doc.m2live.co.kr/references/settings/functions/network/http.html#modify
                           "headers": {
                               "modify": {
                                   "enable": true,
                                   "matchFirstOnly": false,
                                   "defaultCaseSensitive": true,
                                   "matchingList": [
                                       {
                                           "pattern": "*",
                                           "header": "$REQ[referer: $REQ.referer]",
                                           "mode": "set"
                                       },
                                       {
                                           "pattern": "*",
                                           "header": "$REQ[X-Forwarded-Host: $REQ.host]",
                                           "mode": "set"
                                       }
                                   ]
                               }
                           },
                           #pagespeed의 경우 모든 요청에 대해 bypass 한다.
                            "bypass":{
                                "getMethod": {
                                    "enable": true
                                }
                            }
                       },
                       "backEnd": {
                           "health": {
                               #원본 장애시 배제를 하지 않는다.
                               #참고 : https://doc.m2live.co.kr/references/settings/functions/network/http.html#exclusion
                               "exclusion": {
                                   "count": 0
                               }
                           },
                           #BYPASS URL은 원본 요청시 referer , X-Forwarded-Host를 추가하여 요청 한다.
                           #https://doc.m2live.co.kr/references/settings/functions/network/http.html#ref-functions-network-http-backend-headers-modify
                           "headers": {
                               "modify": {
                                   "enable": true,
                                   "matchFirstOnly": false,
                                   "matchingList": [
                                       {
                                           "pattern": "$URL[*]",
                                           "header": "$ORGREQ[referer:$REQ.referer]",
                                           "mode": "set"
                                       },
                                       {
                                           "pattern": "*",
                                           "header": "$REQ[X-Forwarded-Host: $REQ.host]",
                                           "mode": "set"
                                       }
                                   ]
                               },
                               #클라이언트가 보낸 User-Agent 헤더값을 원본으로 요청한다.
                               #https://doc.m2live.co.kr/references/settings/functions/network/http.html#useragent
                               "userAgent": {
                                   "enable": true,
                                   "value": "*"
                               },
                               #클라이언트가 보낸 host 헤더값을 원본으로 요청 한다.
                               #https://doc.m2live.co.kr/references/settings/functions/network/http.html#host
                               "host": {
                                   "enable": true,
                                   "value": "*"
                               }
                           }
                       }
                   }
               },
               "contents": {
                   #pagespeed를 활성화 한다.
                   #이미지 최적화 / MP4 비디오를 WebM 포맷으로 최적화 실행할 src, dest 도메인을 설정 한다.
                   "pagespeed": {
                       "meta": {
                           "enable": true,
                       },
                       "optimg": {
                           "matchingList": [
                               {
                                   "src": "img.example.com",
                                   "dest": "img.example.com"
                               }
                           ]
                       },
                       "optvideo": {
                           "matchingList": [
                               {
                                   "src": "img.example.com",
                                   "dest": "img.example.com"
                               }
                           ]
                        }
                   }
               }
           }
       }
   ]
}