Classic/VPC 환경에서 이용 가능합니다.
Global Edge 서비스를 이용하면서 다음과 같은 문제를 겪을 수 있습니다. 문제별 원인과 해결 방법을 확인하고 적절하게 조치해 주십시오.
CORS 오류
CORS 오류가 발생했습니다.
"The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed." 오류 메시지가 표시됩니다.
원인
CORS (Cross-Origin Resource Sharing 교차 출처 리소스 공유) 오류는 웹 브라우저가 서로 다른 출처의 자원에 접근할 때 발생하는 보안 관련 오류입니다. 웹 브라우저가 보안을 위해 출처가 다른 리소스에 대한 접근을 제한하기 때문에 발생합니다.
CORS 정책에 따라 이 헤더는 하나의 값만 허용됩니다. Global Edge와 원본에 설정되어 있을 경우, 값 중복으로 오류가 발생할 수 있습니다.
해결 방법
Global Edge에서 CORS 헤더 추가 기능 활성화해 주십시오.
CORS 기능 활성화
CORS HTTP 헤더를 간편하게 추가할 수 있도록 CORS 기능을 활성화하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서
> Services > Content Delivery > Global Edge 메뉴를 차례대로 클릭해 주십시오. - 엣지 목록에서 엣지를 클릭해 주십시오.
- 화면 왼쪽 메뉴에서 룰빌더 > 매니지드 룰을 클릭해 주십시오.
- CORS 기능을 활성화해 주십시오.
401 오류
Global Edge Profile API 요청 중 Expired Time 오류 코드가 발생합니다.
401 오류가 발생합니다.
원인
401 오류는 대부분 클라이언트의 잘못된 요청이 원인입니다.
해결 방법
- API 요청 시 사용하는 Access Key, Secret Key 값을 확인해 주십시오.
- Access Key, Secret Key 값은 네이버 클라우드 플랫폼 콘솔의 My Account > 계정 및 보안 관리 > 보안 관리 > 접근 관리 메뉴에서 확인할 수 있습니다.
- Signature를 생성할 때 사용한 Timestamp 값과 API 호출시 header로 넘기는 Timestamp 값이 동일한지 확인해 주십시오.
- Timestamp 값은 milli second 단위의 값이어야 합니다.
- Signature 생성 시 사용되는 URI가 호스트 도메인을 제외한 값인지 확인해 주십시오.
- <예시> /api/v1/profiles
- Signature 생성 시 사용되는 Method는 호출 시 사용하는 Method 값과 동일해야 합니다. 자세한 내용은 Ncloud API를 참조해 주십시오.
404 NoSuchKey 오류
404 NoSuchKey 오류가 발생합니다.
원인
404 NoSuchKey 오류는 요청한 오브젝트가 버킷에 존재하지 않을 때 발생합니다.
해결 방법
요청하는 오브젝트 이름이 정확한지 확인해야 합니다.
CLI 명령어를 사용하여 반환된 Key 값 확인하는 방법은 다음과 같습니다.
aws s3api --endpoint-url=https://kr.object.gov-ncloudstorage.com list-objects-v2 --bucket <bucket_name
실제 저장되는 Key 값에 특수 문자, 공백이 있거나 경로 앞에 '/' 등이 포함되어 있을 수 있습니다.
AccessDenied 오류
엣지 생성 후 도메인을 연결했는데 AccessDenied 오류가 발생합니다.
원인
원본이 Object Storage에 위치하고 있는 경우, 파일 권한에 문제가 있을 수 있습니다.
해결 방법
Object Storage 파일 권한 변경
Object Storage에 업로드한 파일 권한을 ‘전체 공개’로 설정해 주십시오. 권한을 변경하는 방법은 권한 관리를 참조해 주십시오.
와일드 인증서 적용 오류
와일드 인증서를 서비스 도메인에 적용시키고자 하는데 오류가 발생합니다.
"해당 값은 디폴트 값으로 적용이 되어져 있어 사용이 불가능합니다" 오류 메시지가 표시됩니다.
원인
Global Edge 정책에 따라 서비스 도메인에 와일드카드(/*) 문자를 입력할 수 없습니다.
해결 방법
서비스 도메인에는 와일드카드 문자를 입력할 수 없으므로, 필요한 디렉터리를 모두 추가해야 합니다.
- 네이버 클라우드 플랫폼 콘솔에서
> Services > Content Delivery > Global Edge 메뉴를 차례대로 클릭해 주십시오. - 엣지 목록에서 엣지를 클릭해 주십시오.
- 화면 왼쪽 메뉴에서 룰빌더를 클릭해 주십시오.
- 캐시 상세 룰에서 [Add cashe rules] 버튼을 클릭해 주십시오.
- 필요한 디렉터리를 하나씩 추가해 주십시오.
인증서 선택 불가
정상적으로 발급된 인증서가 있는데 Global Edge에서 인증서가 선택되지 않습니다.
엣지 생성 시 서비스 도메인을 네이버 클라우드 플랫폼에서 발급하는 도메인으로 선택하여 발급 받았으나, 서비스 도메인을 고객 도메인으로 사용해야 합니다.
원인
엣지 생성 시 서비스 도메인을 고객 보유 도메인으로 사용해야 합니다.
해결 방법
인증서 등록 여부 확인
Certificate Manager에 정상적으로 인증서가 등록되어 있는지 확인해 주십시오.
서비스 도메인으로 고객이 보유한 도메인 사용
고객이 보유한 도메인으로 서비스 도메인을 사용하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 콘솔에서
> Services > Content Delivery > Global Edge 메뉴를 차례대로 클릭해 주십시오. - 엣지 목록에서 [설정보기] 버튼을 클릭해 주십시오.
- [설정 보기] 버튼을 클릭해 주십시오.
- CNAME 영역에서 주소를 복사해 주십시오.
- 운영하는 DNS 시스템 혹은 호스팅 업체에서 해당 도메인을 CNAME 설정해 주세요
- 만약, 네이버 클라우드 플랫폼의 Global DNS를 사용하신다면 아래 방법으로 CNAME을 등록해 주세요.
- 네이버 클라우드 플랫폼 콘솔에서
> Services > Content Delivery > Global DNS > Record 메뉴를 차례대로 클릭해 주십시오. - 도메인을 선택한 후 [레코드 추가] 버튼을 클릭해 주십시오.
- 레코드 추가 창이 나타나면 레코드명을 입력한 후, 레코드 타입을 CNAME을 선택해 주십시오.
- Alias(별칭) 기능 은 사용 안 함을 선택해 주십시오.
- 레코드 값에 복사한 도메인 주소를 입력해 주십시오.
- [추가] 버튼을 클릭해 주십시오.
파일 목록 숨김
Edge 도메인의 루트 접근 시 XML 파일에서 파일 목록을 보이지 않게 설정하고 싶습니다.
해결 방법
URL Rewrite 기능 사용
URL Rewrite 기능을 이용하여 root 요청을 특정 URL로 변경할 수 있습니다.
- 네이버 클라우드 플랫폼 콘솔에서
> Services > Content Delivery > Global Edge 메뉴를 차례대로 클릭해 주십시오. - 엣지 목록에서 엣지를 클릭해 주십시오.
- 화면 왼쪽 메뉴에서 룰빌더를 클릭해 주십시오.
- 캐시 상세 룰 > [Add cashe rules] 버튼을 클릭해 주십시오.
- IF Directory에 '/'를 입력해 주십시오 .
- [Advanced settings] 버튼을 클릭한 후, URL Rewrite를 활성화 해 주십시오.
- Rewrite to에 '/index.html'를 입력해 주십시오.
오리진 경로 설정
Object Storage 서비스의 버킷 내 새로운 폴더를 생성한 후, 해당 폴더에 CDN 콘텐츠를 이전하고, Global Edge 서비스에서 오리진 설정 > 오리진 경로에 새로 생성한 디렉터리 이름을 입력해 주십시오.
Edge 도메인만 호출 시 ('/' root 경로 요청) Object Storage의 메타 정보가 보이지 않도록 설정하는 방법은 다음과 같습니다.
- Object Storage 서비스 내 버킷에 새로운 폴더를 생성해 주십시오.
- Global Edge 서비스에서 엣지를 클릭해 주십시오.
- 오리진 설정 > 오리진 경로에 버킷에 생성한 폴더명을 입력해 주십시오.
<예시> '/path01' 입력
이 가이드에서 필요한 정보를 찾지 못했거나 추가로 필요한 정보가 있으신 경우, 언제든지 아래의 피드백 아이콘을 클릭하여 의견을 보내 주십시오. 전달해 주신 의견을 참고하여 더 유용한 정보를 제공하겠습니다.