소스 컴파일 설치를 위한 GitLab Pages 관리
- Offering: GitLab Self-Managed GitLab 설치를 성공적으로 완료했는지 확인하세요. 이 문서는 소스 컴파일 방식으로 설치된 GitLab에서 GitLab Pages를 구성하는 방법을 설명합니다.
-
Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
GitLab Pages를 활성화하기 전에 먼저
GitLab 설치를 성공적으로 완료했는지 확인하세요.
이 문서는 소스 컴파일 방식으로 설치된 GitLab에서 GitLab Pages를 구성하는 방법을 설명합니다.
Linux 패키지 설치(권장)에서 GitLab Pages를 구성하는 방법에 대한 자세한 내용은 Linux 패키지 문서를 참조하세요. Linux 패키지 설치에는 최신 지원 버전의 GitLab Pages가 포함되어 있습니다.
GitLab Pages 작동 원리#
GitLab Pages는 GitLab Pages 데몬을 사용합니다. 이는
외부 IP 주소에서 수신 대기하며 커스텀 도메인 및 인증서를 지원하는 경량 HTTP 서버입니다.
SNI를 통한 동적 인증서를 지원하며 기본적으로 HTTP2를 사용하여 페이지를 제공합니다. 자세한 내용은
README를 참조하세요.
커스텀 도메인의 경우, Pages 데몬은 80 또는 443 포트에서 수신 대기해야 합니다.
이는 와일드카드 도메인에는 적용되지 않습니다.
다음 방법 중 하나로 설정할 수 있습니다:
-
GitLab과 동일한 서버에서, 보조 IP를 사용하여 수신 대기.
-
별도의 서버에서. Pages 경로도 해당 서버에 있어야 하므로 네트워크를 통해 공유해야 합니다.
-
GitLab과 동일한 서버에서, 동일한 IP이지만 다른 포트를 사용하여 수신 대기. 이 경우 로드 밸런서로 트래픽을 프록시해야 합니다. HTTPS의 경우 TCP 로드 밸런싱을 사용하세요. TLS 종료(HTTPS 로드 밸런싱)를 사용하면 사용자가 제공한 인증서로 페이지를 제공할 수 없습니다. HTTP의 경우 HTTP 또는 TCP 로드 밸런싱 모두 허용됩니다.
다음 섹션에서는 첫 번째 옵션을 기준으로 설명합니다. 커스텀 도메인을 지원하지 않는 경우 보조 IP는 필요하지 않습니다.
사전 요구 사항#
Pages 구성을 진행하기 전에 다음을 확인하세요:
-
GitLab Pages를 제공할 별도의 도메인이 있어야 합니다. 이 문서에서 이 도메인은
example.io입니다. -
해당 도메인에 대한 와일드카드 DNS 레코드를 구성해야 합니다.
-
GitLab이 설치된 동일한 서버에
zip및unzip패키지가 설치되어 있어야 합니다. 이 패키지는 Pages 아티팩트를 압축 및 압축 해제하는 데 필요합니다. -
선택 사항. HTTPS로 Pages를 제공하려면 Pages 도메인(
*.example.io)에 대한 와일드카드 인증서가 있어야 합니다. -
선택 사항이지만 권장. 사용자가 직접 구성할 필요가 없도록 인스턴스 러너를 구성하고 활성화하세요.
DNS 구성#
GitLab Pages는 자체 가상 호스트에서 실행되어야 합니다. DNS 서버 또는 공급업체에서
GitLab이 실행 중인 호스트를 가리키는
와일드카드 DNS A 레코드를 추가하세요. 예를 들면:
<span class="line"><span class="cl">*.example.io. 1800 IN A 192.0.2.1</span></span>
여기서 example.io는 GitLab Pages가 제공되는 도메인이고, 192.0.2.1은
GitLab 인스턴스의 IP 주소입니다.
사용자 페이지 제공에 GitLab 도메인을 사용하지 마세요. 자세한 내용은
보안 섹션을 참조하세요.
구성#
GitLab Pages를 여러 가지 방법으로 설정할 수 있습니다. 다음 옵션은 가장 단순한 설정부터 가장 고급 설정까지 나열되어 있습니다. 모든 구성의 최소 요구 사항은 와일드카드 DNS 레코드입니다.
와일드카드 도메인#
각 사이트는 고유한 서브도메인을 갖습니다(예: <namespace>.example.io/<project_slug>).
이 서브도메인에는 와일드카드 DNS 레코드(*.example.io)가 필요하며 대부분의 인스턴스에 권장되는 설정입니다.
사전 요구 사항:
이 설정은 Pages를 사용할 수 있는 최소 설정입니다. 아래에 설명된 다른 모든 설정의 기반이 됩니다. NGINX는 모든 요청을 데몬으로 프록시합니다. Pages 데몬은 외부 세계에서 수신 대기하지 않습니다.
Pages 데몬을 설치합니다:
<span class="line"><span class="cl"><span class="nb">cd</span> /home/git
</span></span><span class="line"><span class="cl">sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> gitlab-pages
</span></span><span class="line"><span class="cl">sudo -u git -H git checkout v<span class="k">$(</span></home/git/gitlab/GITLAB_PAGES_VERSION<span class="k">)</span>
</span></span><span class="line"><span class="cl">sudo -u git -H make</span></span>
GitLab 설치 디렉터리로 이동합니다:
<span class="line"><span class="cl"><span class="nb">cd</span> /home/git/gitlab</span></span>
gitlab.yml을 편집하고 pages 설정 아래에서 enabled를 true로 설정하고
host를 GitLab Pages를 제공할 FQDN으로 설정합니다:
<span class="line"><span class="cl"><span class="c">## GitLab Pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># The location where pages are stored (default: shared/pages).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># path: shared/pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">host</span><span class="p">:</span><span class="w"> </span><span class="l">example.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">access_control</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">port</span><span class="p">:</span><span class="w"> </span><span class="m">8090</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">https</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">artifacts_server</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">external_http</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"127.0.0.1:8090"</span><span class="p">]</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">secret_file</span><span class="p">:</span><span class="w"> </span><span class="l">/home/git/gitlab/gitlab-pages-secret</span></span></span>
/home/git/gitlab-pages/gitlab-pages.conf에 다음 구성 파일을 추가합니다. example.io를
GitLab Pages를 제공할 FQDN으로, gitlab.example.com을 GitLab 인스턴스의 URL로
바꾸세요:
<span class="line"><span class="cl"><span class="na">listen-http</span><span class="o">=</span><span class="s">:8090</span>
</span></span><span class="line"><span class="cl"><span class="na">pages-root</span><span class="o">=</span><span class="s">/home/git/gitlab/shared/pages</span>
</span></span><span class="line"><span class="cl"><span class="na">api-secret-key</span><span class="o">=</span><span class="s">/home/git/gitlab/gitlab-pages-secret</span>
</span></span><span class="line"><span class="cl"><span class="na">pages-domain</span><span class="o">=</span><span class="s">example.io</span>
</span></span><span class="line"><span class="cl"><span class="na">internal-gitlab-server</span><span class="o">=</span><span class="s">https://gitlab.example.com</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="na">You can use an `http` address when running GitLab Pages and GitLab on the same host. If you use</span>
</span></span><span class="line"><span class="cl"><span class="na">`https` with a self-signed certificate, make your custom CA available to GitLab Pages, for</span>
</span></span><span class="line"><span class="cl"><span class="na">example by setting the `SSL_CERT_DIR` environment variable.</span></span></span>
비밀 API 키를 추가합니다:
<span class="line"><span class="cl">sudo -u git -H openssl rand -base64 <span class="m">32</span> > /home/git/gitlab/gitlab-pages-secret</span></span>
pages 데몬을 활성화하려면:
시스템이 systemd init을 사용하는 경우 다음을 실행하세요:
<span class="line"><span class="cl">sudo systemctl edit gitlab.target</span></span>
편집기에서 다음을 추가하고 파일을 저장합니다:
<span class="line"><span class="cl">[Unit]
</span></span><span class="line"><span class="cl">Wants=gitlab-pages.service</span></span>
시스템이 SysV init을 사용하는 경우, /etc/default/gitlab을 편집하고 gitlab_pages_enabled를
true로 설정합니다:
<span class="line"><span class="cl"><span class="na">gitlab_pages_enabled</span><span class="o">=</span><span class="s">true</span></span></span>
gitlab-pages NGINX 구성 파일을 복사합니다:
<span class="line"><span class="cl">sudo cp lib/support/nginx/gitlab-pages /etc/nginx/sites-available/gitlab-pages.conf
</span></span><span class="line"><span class="cl">sudo ln -sf /etc/nginx/sites-<span class="o">{</span>available,enabled<span class="o">}</span>/gitlab-pages.conf</span></span>
NGINX를 재시작합니다.
TLS 지원이 포함된 와일드카드 도메인#
사전 요구 사항:
-
와일드카드 TLS 인증서
URL 체계: https://<namespace>.example.io/<project_slug>
NGINX는 모든 요청을 데몬으로 프록시합니다. Pages 데몬은 공용 인터넷에서 수신 대기하지 않습니다.
TLS 지원이 포함된 와일드카드 도메인을 구성하려면:
Pages 데몬을 설치합니다:
<span class="line"><span class="cl"><span class="nb">cd</span> /home/git
</span></span><span class="line"><span class="cl">sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> gitlab-pages
</span></span><span class="line"><span class="cl">sudo -u git -H git checkout v<span class="k">$(</span></home/git/gitlab/GITLAB_PAGES_VERSION<span class="k">)</span>
</span></span><span class="line"><span class="cl">sudo -u git -H make</span></span>
gitlab.yml에서 port를 443으로, https를 true로 설정합니다:
<span class="line"><span class="cl"><span class="c">## GitLab Pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># The location where pages are stored (default: shared/pages).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># path: shared/pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">host</span><span class="p">:</span><span class="w"> </span><span class="l">example.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">port</span><span class="p">:</span><span class="w"> </span><span class="m">443</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">https</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span>
/etc/default/gitlab을 편집하고 gitlab_pages_enabled를 true로 설정합니다. gitlab_pages_options에서
-pages-domain은 host 값과 일치해야 합니다. -root-cert 및 -root-key 설정은
example.io 도메인에 대한 와일드카드 TLS 인증서입니다:
<span class="line"><span class="cl"><span class="na">gitlab_pages_enabled</span><span class="o">=</span><span class="s">true</span>
</span></span><span class="line"><span class="cl"><span class="na">gitlab_pages_options</span><span class="o">=</span><span class="s">"-pages-domain example.io -pages-root $app_root/shared/pages -listen-proxy 127.0.0.1:8090 -root-cert /path/to/example.io.crt -root-key /path/to/example.io.key"</span></span></span>
gitlab-pages-ssl NGINX 구성 파일을 복사합니다:
<span class="line"><span class="cl">sudo cp lib/support/nginx/gitlab-pages-ssl /etc/nginx/sites-available/gitlab-pages-ssl.conf
</span></span><span class="line"><span class="cl">sudo ln -sf /etc/nginx/sites-<span class="o">{</span>available,enabled<span class="o">}</span>/gitlab-pages-ssl.conf</span></span>
NGINX를 재시작합니다.
고급 구성#
와일드카드 도메인 외에도 TLS 인증서 유무에 관계없이 커스텀 도메인에서 작동하도록 GitLab Pages를 구성할 수 있습니다.
커스텀 도메인#
사전 요구 사항:
-
보조 IP
URL 체계: http://<namespace>.example.io/<project_slug> 및 http://custom-domain.com
이 구성에서 Pages 데몬이 실행 중이고 NGINX가 요청을 프록시하지만, 데몬은 공용 인터넷에서도 요청을 받을 수 있습니다. TLS 없이 커스텀 도메인이 지원됩니다.
커스텀 도메인을 구성하려면:
Pages 데몬을 설치합니다:
<span class="line"><span class="cl"><span class="nb">cd</span> /home/git
</span></span><span class="line"><span class="cl">sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> gitlab-pages
</span></span><span class="line"><span class="cl">sudo -u git -H git checkout v<span class="k">$(</span></home/git/gitlab/GITLAB_PAGES_VERSION<span class="k">)</span>
</span></span><span class="line"><span class="cl">sudo -u git -H make</span></span>
gitlab.yml을 편집합니다. host를 GitLab Pages를 제공할 FQDN으로 설정하고, external_http를
Pages 데몬이 수신 대기하는 보조 IP로 설정합니다:
<span class="line"><span class="cl"><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># The location where pages are stored (default: shared/pages).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># path: shared/pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">host</span><span class="p">:</span><span class="w"> </span><span class="l">example.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">port</span><span class="p">:</span><span class="w"> </span><span class="m">80</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">https</span><span class="p">:</span><span class="w"> </span><span class="kc">false</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">external_http</span><span class="p">:</span><span class="w"> </span><span class="m">192.0.2.2</span><span class="p">:</span><span class="m">80</span></span></span>
/etc/default/gitlab을 편집하고 gitlab_pages_enabled를 true로 설정합니다. gitlab_pages_options에서:
-pages-domain은 host와 일치해야 합니다.
-
-listen-http는external_http와 일치해야 합니다. -
-listen-https는external_https와 일치해야 합니다.
<span class="line"><span class="cl"><span class="na">gitlab_pages_enabled</span><span class="o">=</span><span class="s">true</span>
</span></span><span class="line"><span class="cl"><span class="na">gitlab_pages_options</span><span class="o">=</span><span class="s">"-pages-domain example.io -pages-root $app_root/shared/pages -listen-proxy 127.0.0.1:8090 -listen-http 192.0.2.2:80"</span></span></span>
gitlab-pages NGINX 구성 파일을 복사합니다:
<span class="line"><span class="cl">sudo cp lib/support/nginx/gitlab-pages /etc/nginx/sites-available/gitlab-pages.conf
</span></span><span class="line"><span class="cl">sudo ln -sf /etc/nginx/sites-<span class="o">{</span>available,enabled<span class="o">}</span>/gitlab-pages.conf</span></span>
/etc/nginx/site-available/에 있는 모든 GitLab 관련 구성을 편집하고 0.0.0.0을
192.0.2.1로 바꿉니다. 여기서 192.0.2.1은 GitLab이 수신 대기하는 기본 IP입니다.
NGINX를 재시작합니다.
TLS 지원이 포함된 커스텀 도메인#
사전 요구 사항:
-
와일드카드 TLS 인증서
-
보조 IP
URL 체계: https://<namespace>.example.io/<project_slug> 및 https://custom-domain.com
이 구성에서 Pages 데몬이 실행 중이고 NGINX가 요청을 프록시하지만, 데몬은 공용 인터넷에서도 요청을 받을 수 있습니다. 커스텀 도메인과 TLS가 지원됩니다.
TLS 지원이 포함된 커스텀 도메인을 구성하려면:
Pages 데몬을 설치합니다:
<span class="line"><span class="cl"><span class="nb">cd</span> /home/git
</span></span><span class="line"><span class="cl">sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> gitlab-pages
</span></span><span class="line"><span class="cl">sudo -u git -H git checkout v<span class="k">$(</span></home/git/gitlab/GITLAB_PAGES_VERSION<span class="k">)</span>
</span></span><span class="line"><span class="cl">sudo -u git -H make</span></span>
gitlab.yml을 편집합니다. host를 GitLab Pages를 제공할 FQDN으로 설정하고, external_http와
external_https를 Pages 데몬이 수신 대기하는 보조 IP로 설정합니다:
<span class="line"><span class="cl"><span class="c">## GitLab Pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"></span><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># The location where pages are stored (default: shared/pages).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># path: shared/pages</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">host</span><span class="p">:</span><span class="w"> </span><span class="l">example.io</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">port</span><span class="p">:</span><span class="w"> </span><span class="m">443</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">https</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">external_http</span><span class="p">:</span><span class="w"> </span><span class="m">192.0.2.2</span><span class="p">:</span><span class="m">80</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">external_https</span><span class="p">:</span><span class="w"> </span><span class="m">192.0.2.2</span><span class="p">:</span><span class="m">443</span></span></span>
/etc/default/gitlab을 편집하고 gitlab_pages_enabled를 true로 설정합니다. gitlab_pages_options에서:
-pages-domain은 host와 일치해야 합니다.
-
-listen-http는external_http와 일치해야 합니다. -
-listen-https는external_https와 일치해야 합니다.
-root-cert 및 -root-key 설정은 example.io 도메인에 대한 와일드카드 TLS 인증서입니다:
<span class="line"><span class="cl"><span class="na">gitlab_pages_enabled</span><span class="o">=</span><span class="s">true</span>
</span></span><span class="line"><span class="cl"><span class="na">gitlab_pages_options</span><span class="o">=</span><span class="s">"-pages-domain example.io -pages-root $app_root/shared/pages -listen-proxy 127.0.0.1:8090 -listen-http 192.0.2.2:80 -listen-https 192.0.2.2:443 -root-cert /path/to/example.io.crt -root-key /path/to/example.io.key"</span></span></span>
gitlab-pages-ssl NGINX 구성 파일을 복사합니다:
<span class="line"><span class="cl">sudo cp lib/support/nginx/gitlab-pages-ssl /etc/nginx/sites-available/gitlab-pages-ssl.conf
</span></span><span class="line"><span class="cl">sudo ln -sf /etc/nginx/sites-<span class="o">{</span>available,enabled<span class="o">}</span>/gitlab-pages-ssl.conf</span></span>
/etc/nginx/site-available/에 있는 모든 GitLab 관련 구성을 편집하고 0.0.0.0을
192.0.2.1로 바꿉니다. 여기서 192.0.2.1은 GitLab이 수신 대기하는 기본 IP입니다.
NGINX를 재시작합니다.
NGINX 주의 사항#
다음 정보는 소스 컴파일 설치에만 적용됩니다.
NGINX 구성에서 도메인 이름을 설정할 때 주의하세요. 백슬래시를 제거하면 안 됩니다.
GitLab Pages 도메인이 example.io인 경우 다음을 바꾸세요:
<span class="line"><span class="cl"><span class="k">server_name</span> <span class="p">~</span><span class="sr">^.*\.YOUR_GITLAB_PAGES\.DOMAIN$;</span></span></span>
다음으로:
<span class="line"><span class="cl"><span class="k">server_name</span> <span class="p">~</span><span class="sr">^.*\.example\.io$;</span></span></span>
서브도메인을 사용하는 경우 첫 번째 것을 제외한 모든 점(.)을 백슬래시(\)로 이스케이프하세요.
예를 들어, pages.example.io는 다음과 같이 됩니다:
<span class="line"><span class="cl"><span class="k">server_name</span> <span class="p">~</span><span class="sr">^.*\.pages\.example\.io$;</span></span></span>
접근 제어#
GitLab Pages 접근 제어는 프로젝트별로 구성할 수 있습니다. Pages 사이트에 대한 접근은 해당 프로젝트의 멤버십을 기반으로 제어할 수 있습니다.
접근 제어는 Pages 데몬을 GitLab의 OAuth 애플리케이션으로 등록함으로써 작동합니다. 인증되지 않은 사용자가 비공개 Pages 사이트에 대한 접근을 요청할 때마다, Pages 데몬은 사용자를 GitLab으로 리디렉션합니다. 인증이 성공하면 사용자는 토큰과 함께 Pages로 다시 리디렉션되며, 이 토큰은 쿠키에 저장됩니다. 쿠키는 비밀 키로 서명되어 변조를 감지할 수 있습니다.
비공개 사이트의 리소스를 보기 위한 각 요청은 해당 토큰을 사용하여 Pages가 인증합니다. Pages는 수신하는 각 요청에 대해 GitLab API에 요청을 보내 사용자가 해당 사이트를 읽을 권한이 있는지 확인합니다.
Pages의 접근 제어 매개변수는 다음과 같습니다:
-
gitlab-pages-config라는 규칙으로 명명된 구성 파일에 설정됩니다. -
-config플래그 또는CONFIG환경 변수를 사용하여 Pages에 전달됩니다.
Pages 접근 제어는 기본적으로 비활성화되어 있습니다. 활성화하려면:
config/gitlab.yml을 수정합니다:
<span class="line"><span class="cl"><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">access_control</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span>
새
시스템 OAuth 애플리케이션을 생성합니다.
이름을 GitLab Pages로 지정하고 리디렉션 URL을 https://projects.example.io/auth로 설정합니다.
신뢰할 수 있는 애플리케이션일 필요는 없지만 api 범위가 필요합니다.
다음 인수로 구성 파일을 전달하여 Pages 데몬을 시작합니다:
<span class="line"><span class="cl"> auth-client-id<span class="o">=</span>
</span></span><span class="line"><span class="cl"> auth-client-secret<span class="o">=</span>
</span></span><span class="line"><span class="cl"> auth-redirect-uri<span class="o">=</span><span class="s1">'http://projects.example.io/auth'</span>
</span></span><span class="line"><span class="cl"> auth-secret<span class="o">=</span><<span class="m">40</span> random hex characters>
</span></span><span class="line"><span class="cl"> auth-server<span class="o">=</span></span></span>
사용자는 이제 프로젝트 설정에서 구성할 수 있습니다.
저장 경로 변경#
GitLab Pages 콘텐츠가 저장되는 기본 경로를 변경하려면:
Pages는 기본적으로 /home/git/gitlab/shared/pages에 저장됩니다. 다른 위치를 사용하려면
pages 섹션 아래의 gitlab.yml을 편집하세요:
<span class="line"><span class="cl"><span class="nt">pages</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">enabled</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="c"># The location where pages are stored (default: shared/pages).</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">path</span><span class="p">:</span><span class="w"> </span><span class="l">/mnt/storage/pages</span></span></span>
최대 Pages 크기 설정#
프로젝트당 압축 해제된 아카이브의 기본 최대 크기는 100 MB입니다.
사전 요구 사항:
- 관리자 접근.
이 값을 변경하려면:
-
오른쪽 상단 모서리에서 Admin을 선택합니다.
-
Settings > Preferences를 선택합니다.
-
Pages를 펼칩니다.
-
**Maximum size of pages (MB)**의 값을 업데이트합니다.
백업#
Pages는 정기 백업의 일부이므로 구성할 것이 없습니다.
보안#
XSS 공격을 방지하기 위해 GitLab과 다른 호스트명에서 GitLab Pages를 실행하는 것을 강력히 권장합니다.
