- 인쇄
- PDF
CDN+ 사용 가이드
- 인쇄
- PDF
가입 절차
CDN+ (Content Delivery Network)를 사용하려면 네이버 클라우드 플랫폼[Financial]에서 제공하는 콘솔 및 리소스 등을 이용하기 위해 네이버 클라우드 플랫폼의 계정이 필요합니다.
네이버 클라우드 플랫폼[Financial]에 가입하면 모든 서비스를 이용하실 수 있으며, 사용한 서비스에 대해서만 요금이 청구됩니다.
이미 계정이 있는 경우에는 해당 단계를 건너뛸 수 있습니다.
- 포털로 이동해 주십시오.
- 오른쪽 상단에 [회원가입] 버튼을 클릭하여 회원가입 페이지로 이동해 주십시오..
- 서비스 이용 약관 및 개인정보수집이용에 대한 안내 문구를 확인하고 동의해 주십시오.
- 법인 및 담당자 정보를 입력해 주십시오.
- 결제수단은 직접입금과 자동이체를 선택하실 수 있습니다.
- 가입한 ID/PW를 통해 로그인하고 결제수단 선택 및 등록을 완료해 주십시오.
- 담당자의 가입정보 및 금융회원여부 검증 후 승인이 완료되면 SSL VPN 계정이 발급되어 메일로 전송됩니다.
- SSL VPN Client 접속 툴을 설치하고 실행하여, 발급된 SSL VPN 계정으로 로그인해 주십시오.
- Financial 콘솔은 Financial 포털에 로그인하여 [Console] 버튼을 클릭하거나, 도메인(
www.fin-ncloud.com
)을 직접 입력하여 접속 후 사용가능합니다.
CDN+ 신청하기
콘솔 접속
1. 콘솔에 접속하여 Services > Content Delivery > CDN+(Domestic) 메뉴로 이동해 주십시오.
2. [CDN 신청] 버튼을 클릭해 주십시오.
서비스 설정
서비스 이름, 서비스 프로토콜, 서비스 도메인을 설정합니다. 설정하기 전에 각 항목 우측의 ? 버튼을 클릭하여 도움말을 참고하시기 바랍니다.
1. 신청하고자 하는 CDN+ 서비스 이름을 입력해 주십시오.
2. 서비스 프로토콜을 선택해 주십시오. ALL은 HTTP와 HTTPS 프로토콜을 지원합니다.
HTTPS 혹은 HTTP/HTTPS 프로토콜 선택 시 안내 사항
3. 서비스 도메인을 선택해 주십시오.
- CDN 도메인을 사용할 경우, 기본적으로 [랜덤ID].cdn.ntruss.com 형태로 자동 설정됩니다.
- 'CDN 도메인 > 직접입력'을 선택하면 [입력문자열].cdn.ntruss.com 형태의 도메인으로 설정됩니다.
- 고객 보유 도메인을 사용할 경우 소유하고 있는 도메인을 입력해 주십시오.
- 고객 보유 도메인은 최대 10개까지 지원합니다.
4. 고객 보유 도메인을 사용하고 서비스 프로토콜로 HTTPS 혹은 HTTP/HTTPS를 선택하면, 인증서 등록을 해야 합니다. 인증서는 기존의 등록된 인증서를 활용하거나 신규 인증서를 등록할 수 있습니다. 새로운 SSL 인증서 등록은 Certificate Manager로 기능이 이관되었습니다.
- Let's Encrypt로 발급한 인증서를 사용할 경우에는 Certificate Manager에서 Full Chain 경로를 입력하여 사용하시기 바랍니다.
5. Access Log 저장 여부를 선택해 주십시오.
CDN+ 요청된 Log를 사용자의 Object Storage 혹은 File Storage에 저장할 수 있습니다. Log를 저장하기 위해서는 각 스토리지별로 저장소를 생성해야 합니다. Object Storage에서 Bucket을 생성하거나 File Storage에서 Container를 생성해야 합니다.
1시간 간격으로 요청된 Log 데이터를 압축 포맷(gz)으로 저장합니다. Log를 저장하면 매 시 20분 이후 이전 시각의 Log 확인 가능합니다. 사용량이 많은 CDN의 경우에는 로그 수집에 시간이 소요되어 2시간 이후에 로그가 전송될 수 있습니다.
저장되는 Log의 형태는 아래와 같으며, 각 항목은 공백으로 구분합니다. 데이터가 없는 경우에는 "-"으로 표시합니다.
예시)
2018-02-08 22:08:06 183.111.24.145 GET /cdn/test.png - 8080 - 218.55.184.71+183.111.24.145 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_12_6)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/63.0.3239.132+Safari/537.36 200 57287 0 http://logformat.example.com/ - - TCP_HIT gzip+deflate 155999646 57018 0 c -
항목 | 설명 |
---|---|
date | 일자 |
time | 요청 완료 시간 |
server-ip | 접속한 서버 IP |
cs-method | Client가 요청한 http method |
cs-uri-stem | Client가 요청한 URI |
cs-uri-query | Client 요청시 query string |
server-port | 서버 접속 포트 |
cs-username | 미사용값 (-) |
c-ip | Client IP (Forward IP는 +로 구분) |
cs(User-Agent) | Client의 user-agent |
sc-status | 응답 코드 (2xx, 3xx, 4xx 등) |
sc-bytes | 서버에서 Client에 응답한 전체 용량(bytes) |
time-taken | 응답에 소요된 시간 |
cs-referer | 요청시 referer |
sc-resinfo | CDN 응답 관련 부가 정보(gzip, deflate, Bypass등의 정보, “+”문자로 구분 |
cs-range | range 요청의 경우 range byte 값 |
sc-cachehit | Cache Hit/Miss 정보 (TCP_HIT, TCP_MISS 등) |
cs-acceptencoding | 요청 시 accept-encoding 값 |
session-id | 서버 내 session id 값 |
sc-content-length | 응답 시 Content-Length 헤더의 값 |
time-response | First Byte 응답시간 |
x-transaction-status | 컨텐츠 용량의 전송 완료여부 (x - 콘텐츠 용량보다 전송 용량이 작은 경우, c - 콘텐츠 용량을 모두 전송 완료한 경우) |
x-vhostlink | 미사용값 (-) |
6. 설명을 입력해 주십시오.
- CDN+ 관련 설명을 입력할 수 있습니다. 필수 값이 아니므로 입력하지 않아도 됩니다.
7. 설정을 완료한 후 [다음] 버튼을 클릭해 주십시오.
원본 설정
원본 위치, 원본에 전달하는 Host 헤더, cache key Hostname, Gzip 압축 지원 여부를 설정합니다.
1. CDN+ 서비스를 이용할 원본의 위치를 지정해 주십시오.
네이버 클라우드 플랫폼의 Object Storage를 이용할 경우 Bucket을 미리 생성해야만 이용할 수 있습니다. 원본으로 Object Stroage 활용 시 CDN+ <-> Object Storage간에 발생하는 네트워크 전송요금은 무과금 처리됩니다.
서비스 프로토콜에 관계 없이 원본 프로토콜을 입력할 수 있습니다. 서비스 프로토콜에 따라 기본 프로토콜이 선택되나 변경할 수 있습니다. 각 포트번호는 HTTP 80, HTTPS는 443이 기본 설정입니다.
주의 “원본 경로(선택)” 옵션을 활용할 경우 서비스 경로가 다음과 같이 지정되니 참고하시기 바랍니다.
- 예시) 원본 경로(선택) 옵션을 활용할 경우: 원본 서버에 /example/ 경로를 vhost root 경로로 설정한 경우
원본 경로: http://origin.naver.com/example/logo.gif
CDN+ 서비스 경로: http://example.gcdn.ntruss.com/logo.gif (입력한 원본 경로는 제외됩니다)
- 예시) 원본 경로(선택) 옵션을 활용할 경우: 원본 서버에 /example/ 경로를 vhost root 경로로 설정한 경우
직접 입력할 경우, 원본 서버의 IP 주소 또는 도메인 이름을 입력하며 IP 주소보다는 도메인으로 설정하는 것을 권고합니다.
원본 서버가 HTTP 프로토콜의 Default Port(80) 외에 서비스할 경우에는 포트 번호를 지정합니다.
원본으로 입력이 불가능한 경우
- 사설 IP 주소 입력 불가: 127.0.0.1, 10.x.x.x, 172.1[6-9]|2[0-9]|3[0-1].x.x, 192.168.x.x 대역은 입력 불가
- 원본 도메인명의 A 레코드가 없는 경우: 도메인 질의하여 A레코드(IP 정보)가 없는 경우 입력 불가
예시) origin.example.com 도메인 질의하여 'NXDOMAIN' 응답할 경우 입력 불가
2. 원본 위치에서 실제 서비스로 제공될 원본 파일이 위치한 디렉토리 위치를 추가로 지정해 주십시오.
3. CDN+에서 원본 서버로 요청 시 전달되는 Forward Host 헤더 정보를 선택해 주십시오.
원본 서버에 Virtual Host 설정 시 Host 헤더 정보를 참고하여 응답 콘텐츠를 제어할 수 있습니다. Incoming Host Header는 사용자의 요청 시 전달되는 Host 정보를 원본 요청 시에도 사용합니다. 주로 웹 브라우저의 경우에는 서비스 도메인이 Host 헤더가 됩니다.(예시: ex.cdn.ntruss.com/img.jpg 요청 시 ex.cdn.ntruss.com이 Host 헤더)
Origin Hostname으로 원본 서버에 Virtual Host 설정이 되어 이 도메인에 대해서만 허용할 경우 Origin Hostname 설정을 선택해 주십시오.
기본 설정 값은 서비스 도메인의 ‘Incoming Host Header’ 값을 활용합니다.
4. CDN+의 콘텐츠를 Unique하게 식별할 Cache Key를 선택해 주십시오.
서비스 특성에 따라 적절한 Cache Key를 선택하면 캐싱 효율이 좋아집니다. 서비스 도메인에 따라 콘텐츠는 개별 Cache Key로 구별됩니다. 서비스 도메인에 따라 전송하는 콘텐츠가 다를 경우 Incoming Host Header 값을 선택해 주십시오.
- 예시)
http://sample.cdn.ntruss.com/logo.gif의 cache key는 ‘sample.cdn.ntruss.com’,
http://example.cdn.ntruss.com/logo.gif의 cache key는 ‘example.cdn.ntruss.com’으로 logo.gif는 다른 콘텐츠로 캐싱
- 예시)
서비스 도메인은 다르지만 하나의 원본 Cache Key로 구별됩니다. 서비스의 원본 서버와 전송하는 콘텐츠가 동일하다면 ‘Origin Hostname’으로 설정하는 것이 좋습니다.
- 예시)
http://sample.gcdn.ntruss.com/logo.gif의 cache key는 ‘origin.gcdn.ntruss.com’,
http://example.gcdn.ntruss.com/logo.gif의 cache key는 ‘origin.gcdn.ntruss.com’으로 logo.gif는 하나의 콘텐츠로 캐싱
- 예시)
CDN+ 보유 도메인을 선택하거나 고객 도메인으로 단일 도메인을 사용하는 경우 Cache Key는 'Incoming Host Header'만 선택할 수 있습니다.
5. 원본의 압축 설정 여부를 선택해 주십시오.
- 압축을 할 경우 원본 서버의 트래픽을 줄이고 응답 속도를 개선할 수 있습니다.
- CDN+에서 원본으로 “Accept-Encodgin: gzip” 요청하여 압축된 콘텐츠를 응답받을 수 있습니다. 원본에서 응답 시 Gzip 압축을 지원한다면 ''사용''을 선택해 주십시오.
6. 원본 요청 시 Header를 추가/변경하거나 삭제하여 요청해 주십시오.
- Header의 이름으로 다음의 문자열들은 입력할 수 없습니다 : (){}[]<>@,;:"/?
- Header의 값으로 다음의 문자열들은 입력할 수 없습니다 : []\공백(space)
- Header 값으로 최대 입력할 수 있는 길이는 256byte입니다.
- 예시) Action: Add, Header Name : NCP-Custom-Header, Header Value : ncp => NCP-Custom-Header: ncp
7. 설정을 완료한 후 [다음] 버튼을 클릭해 주십시오.
캐싱 설정
CDN+의 캐싱 만료 시간과 Cache 관련 옵션을 설정합니다.
1. CDN+의 기본 캐싱 정책을 선택해 주십시오.
- 기본적으로 캐시 서버에 보관하는 기간은 원본 서버의 ‘Cache-Contorl: max-age=..’나 ‘Expires’ 헤더 값과 동일한 정책을 따르도록 합니다.
- 원본에서 Cache를 조정하는 헤더를 응답하지 않을 경우 캐시 서버에서 얼마나 보관할지는 ‘Cache Expiry’ 설정값이 적용됩니다.
- Cache 선택 시 캐시 서버에서는 ‘Cache Expiry’ 설정한 값이 최대 캐싱 기간으로 적용됩니다.
- Bypass Cache 설정들은 CDN+ 서버에서 캐싱을 하지 않는 옵션으로 모든 요청이 원본을 통해 서비스되어 권고하지 않습니다.
2. CDN+에서 원본과 통신이 어려울 경우의 동작 방식을 선택해 주십시오.
- 원본 서버와 통신이 되지 않았을 때 캐시 서버에 저장되어 있는 콘텐츠를 사용자에게 제공할 수 있습니다. 최신의 유효한 콘텐츠가 아닐수도 있지만 원본 서버의 장애 시에도 서비스가 가능합니다.
- 원본 서버 장애 시 유효하지 않은 콘텐츠가 전송되는 것이 서비스 영향이 있다면, 항상 원본 서버의 콘텐츠와 비교하여 최신의 유효한 콘텐츠를 제공하도록 선택합니다.
3. Cache expiry를 설정해 주십시오.
- CDN+ 캐시 서버에서 캐싱된 콘텐츠가 원본 서버에서 변경되었는지 여부를 확인하는 주기를 지정합니다. 단, 원본 서버의 응답 헤더에 Cache-Control: max-age가 존재하면 해당 설정이 우선됩니다. 콘텐츠를 자주 업데이트하는 경우에는 짧게 지정하여 설정합니다. 단, 짧게 지정하면 원본의 부하가 늘어나니 주의해서 사용해 주십시오.
4. 서비스 요청 시 Query String을 사용할 경우에 대한 Cache 정책을 선택해 주십시오.
- 원본 서버로 요청 시 사용자 요청의 Query String을 포함할 지 선택할 수 있습니다. 원본 서버에서 Query String에 따라 다른 콘텐츠를 응답할 경우 ‘사용 안함’으로 선택해 주십시오.
- 원본 서버에서 Query String에 관계없이 동일한 콘텐츠를 응답할 경우 ‘사용’으로 선택하여 캐싱 효율을 높이고 원본 요청과 부하를 줄일 수 있습니다.
5. 원본에서의 Vary 헤더 응답에 대한 Cache 정책을 선택해 주십시오.
- 만약 원본 서버에서 ‘Vary’ 헤더를 응답하지만 콘텐츠는 동일하다면 캐싱 효율을 위해 제거하는 것이 좋습니다. 원본에서 Vary 헤더를 응답하더라도 동일한 콘텐츠로 인식하기 위해 캐싱에서 제외할 수 있습니다.
- 콘텐츠가 다양한 버전으로 가지고 있으며 User-Agent, Referer, Cookie 등의 Vary 요청 헤더에 따라 응답 콘텐츠가 달라질 경우 ‘사용’을 선택해 주십시오.
6. 대용량 파일을 서비스 할 경우 캐싱 효율을 위해 최적화 전송 옵션을 선택해 주십시오.
- 대용량 파일을 전송 할 경우 10MB의 청크로 캐싱하며, 사용자가 다운로드를 완료하지 않고 일정 용량 이상이 남아있다면 더 이상 원본으로 요청하지 않아 원본 부하를 감소합니다. 적용을 위해서는 원본에서 Range 응답 설정이 필요합니다. 옵션 활용 시 콘텐츠명을 변경하지 않고 업데이트할 경우 콘텐츠 정합성을 위해 반드시 Purge 수행이 필요합니다.
- 용량은 100MB~16GB 사이 콘텐츠에 대해 적용할 수 있습니다.
7. 설정을 완료한 후 [다음] 버튼을 클릭해 주십시오.
Viewer 전송 설정
CDN+에서 사용자에게 콘텐츠 전송 시의 제어 옵션을 설정합니다.
1. CDN+에서 사용자에게 콘텐츠 전송 시 압축 설정 여부를 선택해 주십시오.
- 사용자의 User-Agent(브라우저 혹은 Device)가 Gzip/Unzip을 지원할 경우 콘텐츠를 압축하여 사용자에게 전달합니다. 네트워크 품질이 낮은 사용자에게 압축 전송을 하면 응답 속도를 개선할 수 있습니다. HTML, JavaScript, 혹은 Text 기반의 10KB 이상 콘텐츠에 적용하는 것이 효과적입니다.
- 원본 서버에서 콘텐츠 확장자 혹은 요청 헤더에 따라 압축/미압축 응답을 유연하게 적용하기 위해서는 ‘원본의 압축 설정과 동일하게 적용’을 선택합니다.
- 이미지(jpg, png 등)나 동영상(mp4, flv 등), 혹은 이미 압축이 적용된 콘텐츠는 추가 압축을 적용하지 않는 것이 좋습니다. 이미 압축된 포맷의 콘텐츠만 서비스할 경우 사용 안함을 선택합니다.
- 압축 전송 사용 시, 대상 콘텐츠는 아래의 Mime Type에 적용됩니다.
Text/html*, text/css*, application/x-javascript*, application/javascript*
2. 사용자 요청 시 레퍼러에 따라 접근 제어를 설정해 주십시오.
지정한 도메인의 레퍼러가 포함되거나 레퍼러가 없는 요청에 대한 접근 제어를 설정할 수 있습니다. 도메인 기반의 설정이므로 특수문자는 “”, “-“, “_”가 허용되며, 와일드카드() 사용 시 하위 도메인에 대해서도 포함하여 접근 제어 설정됩니다.
기본적으로 레퍼러가 없는 경우에 대해서도 콘텐츠를 허용합니다. 등록한 레퍼러에 대해서만 허용하려면 '허용 안함'을 선택하세요.
3. Security Token을 활용하여 허용된 요청에만 콘텐츠를 응답할 경우 선택해 주십시오.
- Secure Token은 일회성으로 Access Token을 생성하여 콘텐츠 요청 시 인증을 통과한 요청에만 콘텐츠를 응답합니다.
- Secure Token은 URL 내에 Query String과 Header의 Cookie 헤더로 지원합니다.
- "인증 예외 대상 확장자"에 설정한 확장자는 인증 token 없이 콘텐츠 호출/응답이 가능합니다.
- "원본에 Token 전달하는 확장자"에 설정한 확장자는 CDN 캐시 서버를 통해 원본서버 요청 시 token 값을 전달합니다. Live Station의 미디어 연관 서비스를 활용시 사용합니다.
- Cookie 인증 사용시의 주의사항
- 웹의 CORS 정책에 따라 고객 보유 도메인은 활용할 수 없습니다. CDN에서 제공하는 도메인 *.cdn.ntruss.com 으로 사용해야 합니다.
- Token의 만료시간과 Cookie 자체의 만료시간을 일치시켜야 합니다.
Secure Token을 생성하는 SDK를 Programming 언어 별 제공합니다. 사용하는 프로그래밍 언어에 따라 선택하여 Secure Token을 생성할 수 있습니다.
- Python: https://github.com/akamai/EdgeAuth-Token-Python
- Java: https://github.com/akamai/EdgeAuth-Token-Java
- Ruby: https://github.com/akamai/EdgeAuth-Token-Ruby
- NodeJS: https://github.com/akamai/EdgeAuth-Token-Node
- Golang : (https://github.com/mobilerider/EdgeAuth-Token-Golang
- C# : (https://github.com/BookBeat/EdgeAuth-Token-CSharp
Token 유효시간의 시작시간(st), 만료시간(exp), ACL(URL 경로조건)을 활용하여 인증 token을 생성하며, 생성된 token을 Query String, Cookie 헤더로 전달하는 설정 예시입니다.
- Token명 : 'token' 값으로 생성이 필요합니다.
- Start(st)/End times(exp) : 인증 token이 유효한 시작/종료 시간입니다.
- Key : Security Token 설정 시 발급되는 key 값으로 생성이 필요합니다.
- ACL(Access Control List) : token으로 일회성 접근 허용 대상 URI 입니다. * 문자를 통해 특정 Path 단위로 설정이 가능합니다.
JAVA 언어를 사용한 인증 Token 생성 방법
- Java SDK를 활용하여 token 생성하는 코드를 작성합니다. (Sample Code)
package com.akamai.edgeauth; public class ExampleEdgeAuth { public static void main(String[] args) { String hostname = "example.cdn.ntruss.com"; // 서비스 도메인명 String ET_ENCRYPTION_KEY = "b2b1"; // token을 생성하기 위한 key String tokenName = "token"; // token 명은 'token' 고정 long duration = 3600L; // 3600 seconds = 1 hour try { EdgeAuth ea = new EdgeAuthBuilder() .key(ET_ENCRYPTION_KEY) .startTime(EdgeAuth.NOW) .windowSeconds(duration) .tokenName(tokenName) .escapeEarly(false) .build(); String acl = "/sample.pdf*"; //*/ String file_url = "/sample.pdf"; String token = ea.generateACLToken(acl); String url = String.format("http://%s%s?%s=%s", hostname, file_url, tokenName, token); System.out.println(url); } catch (EdgeAuthException e) { e.printStackTrace(); } } }
- Java 수행하여 생성된 Request URL 생성 예제입니다.
http://example.cdn.ntruss.com/sample.pdf?token=st=1592202370~exp=1592205970~acl=/sample.pdf*~hmac=d422a548ae769bbaddc1d27f03fe6e096a4ba492928f3eb9c09824f93d78f507
- 생성한 Token을 Cookie 헤더에 포함한 요청 예제입니다.
- URL : http://example.cdn.ntruss.com/sample.pdf - 요청시 포함하는 Header 정보 Cookie: token=st=1628596072~exp=1628682472~acl=/sample.pdf*~hmac=8094467ff875e72e8fccc2e579a0cfd002f680cda7acd10b820c193f671952d8
Python 언어를 사용한 인증 Token 생성방법
- Git에서 제공한 파일로 Token을 생성합니다. (Sample Code)
$ python cms_edgeauth.py -k b2b1 -n token -s now -w 3600 -a /sample.pdf* 예시와 같이 입력어 입력 => 다음과 같은 결과가 출력 token=st=1592204787~exp=1592208387~acl=/sample.pdf*~hmac=79872098f16596c8c40ebab649ae2aac8cce3e3bece204b641c99b6cfac42779
- 생성한 Token을 포함한 최종 Request URL 생성 예제입니다.
http://example.cdn.ntruss.com/sample.pdf?token=st=1592204787~exp=1592208387~acl=/sample.pdf*~hmac=79872098f16596c8c40ebab649ae2aac8cce3e3bece204b641c99b6cfac42779
- 생성한 Token을 Cookie 헤더에 포함한 요청 예제입니다.
- URL : http://example.cdn.ntruss.com/sample.pdf - 요청시 포함하는 Header 정보 Cookie: token=st=1628596072~exp=1628682472~acl=/sample.pdf*~hmac=8094467ff875e72e8fccc2e579a0cfd002f680cda7acd10b820c193f671952d8
C# 언어를 사용한 인증 Token 생성방법
- Git에서 제공한 파일로 Token 생성하는 코드를 작성합니다. (Sample Code)
using BookBeat.Akamai.EdgeAuthToken; namespace MyNameSpace { public class MyTokenGenerator { public string GenerateMyToken(long window, string acl, string key) { var tokenConfig = new AkamaiTokenConfig { Window = window, // Time to live (in seconds) Acl = /sample.pdf*, // Access control list containing token permissions Key = b2b1, // Encryption key StartTime = DateTimeOffset.Now.ToUnixTimeSeconds() // Time to Start Timing(From Now) }; var tokenGenerator = new AkamaiTokenGenerator(); var token = tokenGenerator.GenerateToken(tokenConfig); return token; } } }
- 생성한 Token을 포함한 최종 Request URL 생성 예제입니다.
http://example.cdn.ntruss.com/sample.pdf? token=st=1628596072~exp=1628682472~acl=/sample.pdf*~hmac=8094467ff875e72e8fccc2e579a0cfd002f680cda7acd10b820c193f671952d8
- 생성한 Token을 Cookie 헤더에 포함한 요청 예제입니다.
- URL : http://example.cdn.ntruss.com/sample.pdf - 요청시 포함하는 Header 정보 Cookie: token=st=1628596072~exp=1628682472~acl=/sample.pdf*~hmac=8094467ff875e72e8fccc2e579a0cfd002f680cda7acd10b820c193f671952d8
st(startTime) 값에 관한 유의 사항: 고객의 Token 생성 서버의 시간이 CDN+ Edge 서버의 시간보다 2~4초 정도 빠를경우, Edge 서버에서 토큰의 시작 시간(st 값)이 “too early”로 인식되어 인증이 실패하는 경우가 발생할 수 있습니다. 이러한 경우를 방지하기 위하여, Token을 생성하는 메서드를 호출할 때 start_time 값을 현재 시간보다 10 초 빠르게 설정하고, end_time 값을 10초만큼 늘리는 것을 권장합니다. 무엇보다도 Token 생성을 하는 웹 서버의 시간을 NTP로 정확하게 동기화하는 것이 중요합니다.
4. 사용자 응답 시 Header를 추가/변경하거나 삭제하여 응답할 수 있습니다.
- Header의 이름으로 다음의 문자열들은 입력할 수 없습니다 : (){}[]<>@,;:"/?
- Header의 값으로 다음의 문자열들은 입력할 수 없습니다 : []\공백(space)
- Header 값으로 최대 입력할 수 있는 길이는 256byte입니다.
- 예시) Action: Add, Header Name : Access-Control-Allow-Origin, Header Value : => 'Access-Control-Allow-Origin: '의 CORS 헤더를 Edge에서 응답하도록 설정 가능합니다.
5. 설정을 완료한 후 [다음] 버튼을 클릭해 주십시오.
CDN+ 설정 사항 확인 및 신청
CDN+ 설정 사항 확인
입력했던 설정 항목들의 정보를 확인합니다. 확인 후 최종적으로 [CDN 신청] 버튼을 클릭해 주십시오.
- 입력했던 설정 항목을 수정하고자 할 경우 [이전] 버튼을 클릭해 주십시오.
- [CDN 신청] 으로 CDN+ 설정이 시작되며 구성이 완료되면 ‘신청중’에서 ‘운영중’으로 상태가 변경됩니다.
CDN+ 사용을 위한 도메인 등록
- 네이버 클라우드 플랫폼[Financial]에서 제공하는 도메인으로 사용할 경우에는 해당하지 않습니다.
- 고객 보유 도메인을 서비스 도메인으로 신청한 경우, CDN+를 신청하면 CDN+ 도메인 확인이 가능합니다.
- 반드시 운영하는 DNS 시스템 혹은 호스팅 업체에서 네이버 클라우드 플랫폼 도메인을 CNAME 설정해야 서비스에 사용할 수 있습니다.
- 예시)
- 고객 도메인: sample.example.com
- 네이버 클라우드 플랫폼 도메인: example.cdn.ntruss.com
sample.example.com 600 IN CNAME example.cdn.ntruss.com.