Skip to main content

부하 분산 장치로 GitHub Enterprise Server 사용

단일 GitHub Enterprise Server 인스턴스 또는 고가용성 구성의 인스턴스 쌍 앞에 부하 분산 장치를 사용합니다.

부하 분산 장치 정보

부하 분산 장치 디자인은 네트워크 디바이스를 사용하여 Git 및 HTTP 트래픽을 개별 GitHub Enterprise Server 어플라이언스로 전달합니다. 부하 분산 장치를 사용하여 보안 목적으로 어플라이언스로 직접 트래픽을 제한하거나 DNS 레코드 변경 없이 필요한 경우 트래픽을 리디렉션할 수 있습니다. 프록시 프로토콜을 지원하는 TCP 기반 부하 분산 장치를 사용하는 것이 좋습니다.

GitHub Enterprise Server 호스트 이름에 대한 DNS 조회는 부하 분산 장치로 확인되어야 합니다. 하위 도메인 격리를 사용하도록 설정하는 것이 좋습니다. 하위 도메인 격리를 사용하도록 설정하면 추가 와일드카드 레코드(*.HOSTNAME)도 부하 분산 장치로 확인되어야 합니다. 자세한 내용은 "하위 도메인 격리 사용"을(를) 참조하세요.

클라이언트 연결 정보 처리

GitHub Enterprise Server에 대한 클라이언트 연결은 부하 분산 장치에서 가져오기 때문에 클라이언트 IP 주소가 손실될 수 있습니다.

부하 분산 장치가 지원할 수 있는 경우 PROXY 프로토콜을 구현하는 것이 좋습니다. 프록시 지원을 사용할 수 없는 경우 X-Forwarded-For 헤더를 사용하여 HTTP 및 HTTPS 포트의 부하를 분산할 수도 있습니다.

보안 경고: 프록시 지원 또는 HTTP 전달을 사용하는 경우 외부 트래픽이 GitHub Enterprise Server 어플라이언스에 직접 연결할 수 없는 것이 중요합니다. 외부 트래픽이 제대로 차단되지 않으면 원본 IP 주소가 위조될 수 있습니다.

경고: 부하 분산 장치에서 HTTPS 연결을 종료할 때 부하 분산 장치에서 GitHub Enterprise Server로의 요청도 HTTPS를 사용해야 합니다. HTTP에 대한 연결을 다운그레이드하는 것은 지원되지 않습니다.

GitHub Enterprise Server 인스턴스에서 PROXY 프로토콜 지원 사용

인스턴스와 부하 분산 장치 모두에 대해 PROXY 프로토콜 지원을 사용하도록 설정하는 것이 좋습니다. 공급업체에서 제공하는 지침을 사용하여 부하 분산 장치에서 PROXY 프로토콜을 사용하도록 설정합니다. 자세한 내용은 PROXY 프로토콜 설명서를 참조하세요.

참고: GitHub Enterprise Server는 AWS Network Load Balancer와 호환되지 않는 PROXY 프로토콜 V1을 지원합니다. GitHub Enterprise Server에서 AWS Network Load Balancer를 사용하는 경우 PROXY 지원을 사용하지 마세요.

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 개인 정보 보호를 클릭하고 개인 정보 모드를 선택 취소합니다.

  5. 외부 부하 분산 장치에서 PROXY 프로토콜에 대한 지원 사용을 선택합니다.

  6. "설정" 사이드바에서 설정 저장을 클릭합니다.

    참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  7. 구성 실행이 완료될 때까지 기다립니다.

PROXY 프로토콜 TCP 포트 매핑

원본 포트대상 포트서비스 설명
2223SSH를 통한 Git
8081HTTP
443444HTTPS
80808081관리 콘솔 HTTP
84438444관리 콘솔 HTTPS
94189419Git

GitHub Enterprise Server 인스턴스에서 X-Forwarded-For 지원 사용

PROXY 프로토콜을 사용할 수 없는 경우에만 X-Forwarded-For 프로토콜을 사용합니다. X-Forwarded-For 헤더는 오직 HTTP 및 HTTPS와 호환됩니다. SSH를 통한 Git 연결에 대해 보고된 IP 주소는 부하 분산 장치의 IP 주소를 표시합니다. 일부 환경에서는 인스턴스의 감사 로그에 있는 클라이언트 IP 주소가 127.0.0.1(으)로 잘못 표시되어 있을 수 있습니다.

경고: GitHub Enterprise Server 인스턴스 및 부하 분산 장치에 대한 X-Forwarded-For 지원을 구성하는 경우 관리 콘솔에 연결하지 못할 수 있습니다. 자세한 내용은 "부하 분산 장치로 GitHub Enterprise Server 사용"을(를) 참조하세요.

  1. 페이지의 오른쪽 상단에 있는 GitHub Enterprise Server의 관리 계정에서 을 클릭합니다.

  2. “Site admin”(사이트 관리자) 페이지에 아직 없는 경우 왼쪽 상단에서 Site admin(사이트 관리자)을 클릭합니다.

  3. " 사이트 관리자" 사이드바에서 관리 콘솔 을 클릭합니다.

  4. "설정" 사이드바에서 개인 정보 보호를 클릭하고 개인 정보 모드를 선택 취소합니다.

  5. 외부 부하 분산 장치에서 HTTP X-Forwarded-For 헤더 허용을 선택합니다.

  6. "설정" 사이드바에서 설정 저장을 클릭합니다.

    참고: 관리 콘솔에 설정을 저장하면 시스템 서비스가 다시 시작되어 사용자에게 표시되는 가동 중지 시간이 발생할 수 있습니다.

  7. 구성 실행이 완료될 때까지 기다립니다.

PROXY 지원 없이 사용할 프로토콜 TCP 포트 매핑

원본 포트대상 포트서비스 설명
2222SSH를 통한 Git
2525SMTP
8080HTTP
443443HTTPS
80808080관리 콘솔 HTTP
84438443관리 콘솔 HTTPS

상태 검사 구성

상태 검사를 사용하면 노드에서 미리 구성된 검사가 실패할 경우 부하 분산 장치가 응답하지 않는 노드로의 트래픽 전송을 중지할 수 있습니다. 유지 관리 또는 예기치 않은 오류로 인해 인스턴스가 오프라인 상태인 경우 부하 분산 장치에서 상태 페이지를 표시할 수 있습니다. HA(고가용성) 구성에서 부하 분산 장치를 장애 조치(failover) 전략의 일부로 사용할 수 있습니다. 그러나 HA 쌍의 자동 장애 조치(failover)는 지원되지 않습니다. 요청 제공을 시작하기 전에 복제본 인스턴스를 수동으로 승격해야 합니다. 자세한 내용은 "고가용성 구성"을(를) 참조하세요.

다음 URL을 확인하도록 Load Balancer를 구성합니다.

http(s)://HOSTNAME/status

노드가 정상이고 서비스 최종 사용자 요청에 사용할 수 있는 경우 엔드포인트는 상태 코드 200(OK)을 반환합니다. 자세한 내용은 "고가용성 구성 모니터링"을(를) 참조하세요.

참고: 어플라이언스가 유지 관리 모드인 경우 https://HOSTNAME/status URL은 상태 코드 503(서비스를 사용할 수 없음)을 반환합니다. 자세한 내용은 "유지 관리 모드 사용 설정 및 예약"을(를) 참조하세요.

부하 분산 장치를 통한 연결 문제 해결

부하 분산 장치를 통해 GitHub Enterprise Server 인스턴스의 서비스에 연결할 수 없는 경우 다음 정보를 검토하여 문제를 해결할 수 있습니다.

참고: 스테이징 환경에서 네트워크 인프라 및 인스턴스 구성에 대한 변경 내용을 항상 테스트합니다. 자세한 내용은 "스테이징 인스턴스 설정"을(를) 참조하세요.

오류: 관리 콘솔로의 연결에 대한 “세션이 만료되었습니다”

인스턴스 및 부하 분산 장치에서 X-Forwarded-For 헤더 지원을 사용하도록 설정하면 인스턴스의 관리 콘솔에 액세스하지 못할 수 있습니다. 관리 콘솔 및 연결에 필요한 포트에 대한 자세한 내용은 “관리 웹 UI에서 인스턴스 등록” 및 “네트워크 포트”를 참조하세요.

부하 분산 장치를 통해 관리 콘솔에 연결할 때 세션이 만료되었음이 GitHub Enterprise Server 인스턴스에 표시될 경우 부하 분산 장치에서 다음 구성 중 하나를 시도합니다.

자세한 내용은 부하 분산 장치에 대한 설명서를 참조하세요.

문제에 대한 라이브 업데이트 및 실행의 정상 작동 여부 확인

부하 분산 장치 또는 역방향 프록시를 통해 GitHub Enterprise Server 인스턴스에 액세스하는 경우 페이지가 새로 고쳐질 때까지 알림 배지의 문제 및 변경 내용에 대한 새 설명이나 실행 출력 확인과 같은 예상 라이브 업데이트가 표시되지 않을 수 있습니다. 이는 역방향 프록시 또는 부하 분산 장치가 계층 7 모드에서 실행 중이거나 필요한 websocket 프로토콜을 지원하지 않는 경우에 가장 일반적으로 발생합니다.

라이브 업데이트를 사용하려면 부하 분산 장치 또는 프록시를 다시 구성해야 할 수 있습니다. 자세한 내용은 부하 분산 장치에 대한 설명서를 참조하세요.