Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 와일드 카드 도메인이 아닌 사용자 정의 도메인의 경우 Pages 데몬은 포트 80 /443에서 수신합니다.

  • 보조 IP 에서 수신 대기하는 GitLab과 동일한 서버에서 Pages 데몬을 실행합니다.

  • 별도의 서버에서 Pages 데몬을 실행합니다.
    (Pages 데몬이 설치된 서버에 Pages 경로도 있어야하므로 네트워크를 통해 공유해야 합니다.)

  • 동일한 IP에서 다른 포트에서 수신 대기하면서 GitLab과 동일한 서버에서 Pages 데몬을 실행(로드 밸런서로 트래픽을 프록시) 해당 경로를 선택하면 HTTPS에 TCP로드 밸런싱을 사용해야하며, TLS 종료 (HTTPS-로드 밸런싱)를 사용하면 사용자가 제공 한 인증서로 페이지를 제공할 수 없습니다. 
    (HTTP의 경우 HTTP 또는 TCP로드 밸런싱을 사용하는 것을 권장합니다.)

전제 조건

페이지 구성을 진행하기 전에 다음을 수행해야 합니다.

...

  1. GitLab 페이지의 외부 URL을 다음 위치에 설정하십시오 설정합니다. /etc/gitlab/gitlab.rb.

    Code Block
    pages_external_url 'http://example.io'
    
  2. GitLab을 재구성.

...

  1. 편집 /etc/gitlab/gitlab.rb.

  2. GitLab 페이지 의 페이지의 inplace_chroot로 설정하십시오 에 설정합니다 true:

    Code Block
    gitlab_pages['inplace_chroot'] = true
    
  3. GitLab을 재구성.

...

  • 와일드 카드 도메인 외에도 사용자 정의 도메인과 함께 작동하도록 GitLab Pages를 구성하는 옵션이 있습니다. 여기서도 TLS 인증서가 있거나없는 있거나 없는 사용자 정의 도메인 지원이라는 두 가지 옵션이 있습니다. 가장 쉬운 설정은 TLS 인증서가없는 것입니다. 두 경우 모두 보조 IP 가 필요합니다 . IPv4 주소뿐만 아니라 IPv6가있는 경우 둘 다 사용할 수 있습니다.

...

악의적인 사용자가 자신이 아닌 도메인을 가로 채지 못하게하기 위해 GitLab은 사용자 지정 도메인 확인을 지원합니다. 사용자 정의 도메인을 추가 할 때 사용자는 해당 도메인의 DNS 레코드에 GitLab 제어 인증 코드를 추가하여 자신이 소유하고 있음을 증명해야합니다증명해야 합니다.

사용자 기반이 개인 정보이거나 신뢰할 수없는 경우 확인 요구 사항을 비활성화할 수 있습니다. Pages 섹션 에서  Admin Area > Settings > Preferences 이동하여 Require users to prove ownership of custom domains 을 취소 하면 됩니다. 이 설정은 기본적으로 활성화되어 있습니다.

...

이를 활성화하려면 다음이 필요합니다.

  1. 도메인 만료에 대한 알림을받을 이메일을 선택선택합니다.

  2. 인스턴스의 Admin Area > Settings > Preferences 으로 이동하여 Pages 설정에서 알림을 받을 이메일을 입력하고 아래와 같이 Let 's Encrypt의 서비스 약관에 동의동의합니다.

  3. Save changes클릭클릭합니다.

...

액세스 제어

GitLab 11.5에 도입 되었습니다.

...

페이지 액세스 제어는 기본적으로 비활성화되어 있습니다. 사용하려면 다음을 수행수행합니다.

  1. /etc/gitlab/gitlab.rb에서 활성화

    Code Block
    gitlab_pages['access_control'] = true
    
  2. GitLab을 재구성합니다.

  3. 사용자는 이제 프로젝트 설정에서 구성 할 수 있습니다.

...

  1. 인스턴스의 Admin Area > Settings > Preferences으로 이동하여 Pages 설정에서 Disable public access to Pages sites 체크 체크합니다.

  2. Save changes클릭클릭합니다.

프록시 뒤에서 실행

다른 GitLab과 마찬가지로 Pages는 외부 인터넷 연결이 프록시에 의해 제어되는 환경에서 사용될 수 있습니다. GitLab 페이지에 프록시를 사용하려면 :

...

Omnibus의 경우 일반적으로 Omnibus GitLab에 사용자 지정 CA를 설치하면 이 문제가 해결 되지만 되지만 버그 로 인해 해당 방법이 작동하지 않습니다. 다음 해결 방법을 사용하십시오사용합니다.

  1. GitLab 서버 TLS / SSL 인증서/opt/gitlab/embedded/ssl/certs/cacert.pem에 GitLab 애플리케이션 URLgitlab-domain-example.com 추가 추가합니다.

    Code Block
    printf "\ngitlab-domain-example.com\n===========================\n" | sudo tee --append /opt/gitlab/embedded/ssl/certs/cacert.pem
    echo -n | openssl s_client -connect gitlab-domain-example.com:443  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee --append /opt/gitlab/embedded/ssl/certs/cacert.pem
    
  2. GitLab Pages 데몬을 다시 시작. Omnibus GitLab 인스턴스의 경우 :

    Code Block
    sudo gitlab-ctl restart gitlab-pages

...

아래 단계에 따라 GitLab Pages 데몬의 자세한 로깅을 구성하십시오구성합니다.

  1. 기본적으로 디먼은 INFO레벨 로만 로그 합니다. 레벨로 이벤트를 로그하게 DEBUG하려면/etc/gitlab/gitlab.rb에 다음을 구성해야합니다.

    Code Block
    gitlab_pages['log_verbose'] = true
    
  2. GitLab을 재구성합니다.

저장 경로 변경

아래 단계에 따라 GitLab Pages의 내용이 저장되는 기본 경로를 변경하십시오변경합니다.

  1. 페이지는 기본적으로 /var/opt/gitlab/gitlab-rails/shared/pages에 저장되며 다른 위치에 저장하려면 /etc/gitlab/gitlab.rb에 설정해야합니다.

    Code Block
    gitlab_rails['pages_path'] = "/mnt/storage/pages"
    
  2. GitLab을 재구성합니다.

리버스 프록시 요청에 대한 리스너 구성

Omnibus GitLab 11.1에 도입 되었습니다되었습니다.

아래 단계에 따라 GitLab Pages의 프록시 리스너를 구성합니다.

  1. 기본적으로 리스너는 localhost:8090의 요청을 청취하도록 구성되어 있습니다.

    비활성화하려면 다음을 구성해야합니다 /etc/gitlab/gitlab.rb.

    Code Block
    gitlab_pages['listen_proxy'] = nil
    

    다른 포트에서 수신 대기하려면 다음에서 구성해야합니다 /etc/gitlab/gitlab.rb.

    Code Block
    gitlab_pages['listen_proxy'] = "localhost:10080"
    
  2. GitLab을 재구성합니다.

최대 페이지 크기 설정

Admin Area > Settings > Preferences > Pages의 Maximum size of pages (MB)에서 프로젝트 당 압축 해제 된 아카이브의 최대 크기를 구성 할 수 있습니다. (기본값은 100MB)

...

  1. 페이지 활성화하려면  /etc/gitlab/gitlab.rb에 다음을 추가추가합니다.

    Code Block
    gitlab_pages['enable'] = true
    
  2. 선택적으로 액세스 제어 를 사용 하려면 /etc/gitlab/gitlab.rb에 다음을 추가추가합니다.

    Code Block
    gitlab_pages['access_control'] = true
    
  3. 변경 사항을 적용 하려면 GitLab 서버를 재구성하고 gitlab-secrets.json파일은 이제 새로운 구성으로 업데이트됩니다.

  4. GitLab 서버 에서 비밀 파일의 백업을 만듭니다.

    Code Block
    cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak
    
  5. 새 서버를 설정합니다. 이 서버는 Pages 서버가 됩니다.

  6. 만들기 NFS 공유 새 서버 및 메인에서 액세스 할 수 있도록이 공유를 구성 GitLab 서버를 . 이 예에서는 기본 GitLab Pages 폴더 /var/opt/gitlab/gitlab-rails/shared/pages 를 새 서버의 공유 폴더로 /mnt/pages 사용하고 GitLab 서버 에 마운트 합니다 .

  7. 옴니버스 GitLab를 설치하고 /etc/gitlab/gitlab.rb수정수정합니다.

    Code Block
    external_url 'http://<ip-address-of-the-server>'
    pages_external_url "http://<your-pages-server-URL>"
    postgresql['enable'] = false
    redis['enable'] = false
    prometheus['enable'] = false
    puma['enable'] = false
    sidekiq['enable'] = false
    gitlab_workhorse['enable'] = false
    gitaly['enable'] = false
    alertmanager['enable'] = false
    node_exporter['enable'] = false
    gitlab_rails['auto_migrate'] = false
    
  8. Pages 서버에서 비밀 파일의 백업을 작성작성합니다.

    Code Block
    cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak
    
  9. /etc/gitlab/gitlab-secrets.json파일을 GitLab 서버 에서 Pages 서버로 복사 복사합니다.

  10. 변경 사항이 적용되도록 GitLab 을 재구성합니다.

  11.  /etc/gitlab/gitlab.rb수정수정합니다.

    Code Block
    gitlab_pages['enable'] = false
    pages_external_url "http://<your-pages-server-URL>"
    gitlab_rails['pages_path'] = "/mnt/pages"
    
  12. 변경 사항이 적용되도록 GitLab 을 을 재구성합니다.

Info

참조 : 로드를 분산하려는 경우 여러 서버에서 GitLab Pages를 실행할 수 있습니다. Pages 서버에 여러 IP를 반환하도록 DNS 서버 구성, IP 수준에서 작동하도록 로드 밸런서 구성 등과 같은 표준로드 밸런싱 관행을 통해 이를 수행 할 수 있습니다. 여러 서버에 GitLab 페이지를 설정하려면 각 페이지 서버에 대해 위 절차를 진행하면 됩니다.

...