GitLab Pages 기본 도메인 이름 및 URL
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
GitLab Pages는 네임스페이스와 프로젝트 이름을 기반으로 기본 도메인 이름을 제공합니다. 정적 사이트 생성기를 구성할 때 이 URL을 사용합니다. 자체 GitLab 인스턴스로 GitLab Pages 사이트를 배포한다면 시스템 관리자에게 Pages 와일드카드 도메인을 확인합니다.
GitLab Pages는 네임스페이스와 프로젝트 이름을 기반으로 기본 도메인 이름을 제공합니다. 이러한 도메인은 다음과 같은 특성이 있습니다.
- 프로젝트 사이트, 사용자 사이트, 그룹 사이트에 예측 가능한 URL을 생성합니다.
- GitLab 조직 구조를 반영하는 계층적 경로를 지원합니다.
- 활성화하면 자동 리다이렉트와 함께 고유한 도메인 이름을 만듭니다.
- 커스텀 도메인 이름 및 SSL/TLS 인증서와 함께 동작합니다.
- 사용자, 그룹, 하위 그룹 프로젝트 전반으로 확장됩니다.
정적 사이트 생성기를 구성할 때 이 URL을 사용합니다.
GitLab Pages 기본 도메인 이름#
히스토리
- GitLab 17.4에서 고유 도메인 URL 이 더 짧아지도록 변경되었습니다.
자체 GitLab 인스턴스로 GitLab Pages 사이트를 배포한다면 시스템 관리자에게 Pages
와일드카드 도메인을 확인합니다. GitLab.com의 Pages 와일드카드 도메인(*.gitlab.io)을
자체 도메인으로 바꾸면 이 가이드는 모든 GitLab 인스턴스에 적용됩니다.
GitLab에서 GitLab Pages 프로젝트를 설정하면
namespace.example.io의 서브도메인으로
자동으로 접근할 수 있습니다.
namespace는
GitLab.com의 사용자 이름이거나
이 프로젝트를 만든 그룹 이름입니다.
GitLab Self-Managed에서는 example.io를
인스턴스의 Pages 도메인으로 바꿉니다. GitLab.com에서
Pages 도메인은 *.gitlab.io 입니다.
| GitLab Pages 유형 | GitLab의 프로젝트 경로 예시 | 웹사이트 URL |
|---|---|---|
| 사용자 페이지 | username/username.example.io |
http(s)://username.example.io |
| 그룹 페이지 | acmecorp/acmecorp.example.io |
http(s)://acmecorp.example.io |
| 사용자 소유 프로젝트 페이지 | username/my-website |
http(s)://username.example.io/my-website |
| 그룹 소유 프로젝트 페이지 | acmecorp/webshop |
http(s)://acmecorp.example.io/webshop |
| 하위 그룹 소유 프로젝트 페이지 | acmecorp/documentation/product-manual |
http(s)://acmecorp.example.io/documentation/product-manual |
Use unique domain 설정을 활성화하면 Pages는 평탄화한 프로젝트 이름과 6자 고유 ID로
도메인 이름을 만듭니다. 사용자는 브라우저를 이 고유 도메인 URL로 보내는
308 Permanent Redirect 상태를 받습니다. 브라우저가 이 리다이렉트를 캐시할 수 있습니다.
| GitLab Pages 유형 | GitLab의 프로젝트 경로 예시 | 웹사이트 URL |
|---|---|---|
| 사용자 페이지 | username/username.example.io |
http(s)://username-example-io-123456.example.io |
| 그룹 페이지 | acmecorp/acmecorp.example.io |
http(s)://acmecorp-example-io-123456.example.io |
| 사용자 소유 프로젝트 페이지 | username/my-website |
https://my-website-123456.gitlab.io/ |
| 그룹 소유 프로젝트 페이지 | acmecorp/webshop |
http(s)://webshop-123456.example.io/ |
| 하위 그룹 소유 프로젝트 페이지 | acmecorp/documentation/product-manual |
http(s)://product-manual-123456.example.io/ |
예시 URL의 123456은 6자 고유 ID 입니다.
예를 들어 고유 ID가 f85695 이면 마지막 예시는
http(s)://product-manual-f85695.example.io/ 입니다.
일반 도메인 이름과 HTTPS로 제공되는 네임스페이스의 제한 사항은 서브도메인의 서브도메인을 참고합니다.
다음 예시는 Pages 도메인이 동작하는 방식을 보여 줍니다.
다음 예시는 Use unique domain 설정을 비활성화했다고 가정합니다. 비활성화하지 않았다면 앞의 표를 참고하여 example.io를 gitlab.io로 바꿉니다.
프로젝트 웹사이트 예시#
- 사용자 이름
john아래에blog라는 프로젝트를 만들었으므로 프로젝트 URL은https://gitlab.com/john/blog/입니다. 이 프로젝트에서 GitLab Pages를 활성화하고 사이트를 빌드하면https://john.gitlab.io/blog/에서 접근할 수 있습니다. - 모든 웹사이트를 담을
websites라는 그룹을 만들고, 이 그룹의 프로젝트를blog라고 했습니다. 프로젝트 URL은https://gitlab.com/websites/blog/입니다. 이 프로젝트에서 GitLab Pages를 활성화하면 사이트는https://websites.gitlab.io/blog/에서 사용할 수 있습니다. - 엔지니어링 부서를 위한
engineering그룹과 모든 문서 웹사이트를 담을docs하위 그룹을 만들고, 이 하위 그룹의 프로젝트를workflows라고 했습니다. 프로젝트 URL은https://gitlab.com/engineering/docs/workflows/입니다. 이 프로젝트에서 GitLab Pages를 활성화하면 사이트는https://engineering.gitlab.io/docs/workflows에서 사용할 수 있습니다.
사용자 및 그룹 웹사이트 예시#
- 사용자 이름
john아래에john.gitlab.io라는 프로젝트를 만들었습니다. 프로젝트 URL은https://gitlab.com/john/john.gitlab.io입니다. 프로젝트에서 GitLab Pages를 활성화하면 웹사이트는https://john.gitlab.io에 게시됩니다. - 그룹
websites아래에websites.gitlab.io라는 프로젝트를 만들었습니다. 프로젝트 URL은https://gitlab.com/websites/websites.gitlab.io입니다. 프로젝트에서 GitLab Pages를 활성화하면 웹사이트는https://websites.gitlab.io에 게시됩니다.
일반 예시:
- GitLab.com에서 프로젝트 사이트는 항상
https://namespace.gitlab.io/project-slug에서 사용할 수 있습니다. - GitLab.com에서 사용자 또는 그룹 웹사이트는
https://namespace.gitlab.io/에서 사용할 수 있습니다. - 자체 GitLab 인스턴스에서는
gitlab.io를 Pages 서버 도메인으로 바꿉니다. 이 정보는 시스템 관리자에게 문의합니다.
URL 및 기본 URL#
baseurl 옵션의 이름은 정적 사이트 생성기에 따라 다를 수 있습니다.
모든 정적 사이트 생성기(SSG)의 기본 구성은 웹사이트가
도메인의 하위 디렉터리(example.com/subdir)가 아니라
(서브)도메인(example.com) 아래에 있다고 가정합니다. 따라서
프로젝트 웹사이트(예: namespace.gitlab.io/project-slug)를 게시할 때마다
정적 사이트 생성기 문서에서 이 구성(기본 URL)을 찾아
이 패턴에 맞게 설정해야 합니다.
예를 들어 Jekyll 사이트에서 baseurl은 Jekyll 구성 파일인
_config.yml에 정의합니다. 웹사이트 URL 이
https://john.gitlab.io/blog/ 이면 _config.yml에 다음 줄을 추가해야 합니다.
baseurl: "/blog"
기본 예시 중 하나를 포크하여 웹사이트를 배포하면
baseurl 이 이미 이 방식으로 구성되어 있습니다. 모든 예시는 프로젝트 웹사이트입니다.
사용자 또는 그룹 웹사이트로 만들기로 했다면 프로젝트에서 이 구성을 제거해야 합니다.
Jekyll 예시라면 Jekyll _config.yml을 다음과 같이
변경합니다.
baseurl: ""
일반 HTML 예시를 사용한다면
baseurl을 설정할 필요가 없습니다.
커스텀 도메인#
GitLab Pages는 HTTP 또는 HTTPS로 제공되는 커스텀 도메인과 서브도메인을 지원합니다. 자세한 내용은 GitLab Pages 커스텀 도메인 및 SSL/TLS 인증서를 참고합니다.