Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Использование сервера GitHub Enterprise с подсистемой балансировки нагрузки

Используйте подсистему балансировки нагрузки перед одним экземпляром GitHub Enterprise Server или парой экземпляров в конфигурации с высоким уровнем доступности.

Сведения о подсистеме балансировки нагрузки

Проект подсистемы балансировки нагрузки использует сетевое устройство для направления трафика Git и HTTP на отдельные устройства GitHub Enterprise Server. Подсистему балансировки нагрузки можно использовать для ограничения прямого трафика на устройство в целях безопасности или перенаправления трафика при необходимости оставить без изменений записи DNS. Настоятельно рекомендуется использовать подсистему балансировки нагрузки на основе TCP, поддерживающую протокол PROXY.

Поиски DNS для имени узла GitHub Enterprise Server должны разрешаться в подсистему балансировки нагрузки. Рекомендуется включить изоляцию поддомена. Если изоляция поддомена включена, дополнительная запись с подстановочными знаками (*.HOSTNAME) также должна разрешаться в подсистему балансировки нагрузки. Дополнительные сведения см. в разделе Включение изоляции поддомена.

Обработка сведений о подключениях клиентов

Так как клиентские подключения к GitHub Enterprise Server поступают из подсистемы балансировки нагрузки, IP-адрес клиента может быть утерян.

Мы настоятельно рекомендуем реализовать протокол PROXY, если подсистема балансировки нагрузки поддерживает его. Если поддержка PROXY недоступна, нагрузку на порты HTTP и HTTPS можно также распределять с помощью заголовка X-Forwarded-For.

Предупреждение системы безопасности. Если включена поддержка прокси-сервера или перенаправление HTTP, крайне важно, чтобы внешний трафик не мог напрямую поступать на устройства GitHub Enterprise Server. Если внешний трафик не будет блокироваться должным образом, существует риск подделки исходных IP-адресов.

Предупреждение. При прекращении подключений HTTPS в подсистеме балансировки нагрузки запросы от подсистемы балансировки нагрузки к GitHub Enterprise Server также должны использовать протокол HTTPS. Понижение уровня подключения к HTTP не поддерживается.

Включение поддержки протокола PROXY в экземпляр GitHub Enterprise Server

Настоятельно рекомендуется включить поддержку протокола PROXY как для экземпляр, так и для подсистемы балансировки нагрузки. Используйте инструкции, предоставленные поставщиком, чтобы включить протокол PROXY в подсистеме балансировки нагрузки. Дополнительные сведения см. в документации протокола PROXY.

Примечание. GitHub Enterprise Server поддерживает протокол PROXY версии 1, несовместимый с подсистемами балансировки сетевой нагрузки AWS. Если вы используете подсистемы балансировки сетевой нагрузки AWS с GitHub Enterprise Server, не включайте поддержку PROXY.

  1. В учетной записи администратора GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта. 1. На боковой панели Администратор сайта щелкните Консоль управления. 1. На боковой панели "Параметры" щелкните Конфиденциальность.

  3. В разделе "Внешние подсистемы балансировки нагрузки" выберите Включить поддержку протокола PROXY.

  4. На боковой панели "Параметры" щелкните Сохранить параметры.

    Примечание. Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простою, заметному для пользователей.

  5. Подождите завершения запуска конфигурации.

Сопоставления TCP-портов протокола ПРОКСИ

Исходный портКонечный портОписание службы
2223Git по протоколу SSH
8081HTTP
443444HTTPS
80808081HTTP консоли управления
84438444HTTPS консоли управления
94189419Git

Включение поддержки X-Forwarded-For в экземпляр GitHub Enterprise Server

Используйте протокол X-Forwarded-For только в том случае, если протокол PROXY недоступен. Заголовок X-Forwarded-For работает только с HTTP и HTTPS. IP-адрес, сообщаемый для подключений Git по протоколу SSH, будет представлять IP-адрес подсистемы балансировки нагрузки.

Предупреждение. Если вы настроите X-Forwarded-For поддержку в экземпляр GitHub Enterprise Server и подсистеме балансировки нагрузки, вы не сможете подключиться к Консоль управления. Дополнительные сведения см. в разделе Использование сервера GitHub Enterprise с подсистемой балансировки нагрузки.

  1. В учетной записи администратора GitHub Enterprise Server в правом верхнем углу любой страницы щелкните .

  2. Если вы еще не на странице "Администратор сайта", в левом верхнем углу щелкните Администратор сайта. 1. На боковой панели Администратор сайта щелкните Консоль управления. 1. На боковой панели "Параметры" щелкните Конфиденциальность.

  3. В разделе Внешние балансировщики нагрузки выберите Разрешить заголовок HTTP X-Forwarded-For.

  4. На боковой панели "Параметры" щелкните Сохранить параметры.

    Примечание. Сохранение параметров в Консоль управления перезапускает системные службы, что может привести к простою, заметному для пользователей.

  5. Подождите завершения запуска конфигурации.

Сопоставления портов протокола TCP для использования без поддержки PROXY

Исходный портКонечный портОписание службы
2222Git по протоколу SSH
2525SMTP
8080HTTP
443443HTTPS
80808080HTTP консоли управления
84438443HTTPS консоли управления

Настройка проверок работоспособности

Проверки работоспособности позволяют подсистеме балансировки нагрузки прекратить направлять трафик узлу, который не отвечает, в случае неудачной попытки выполнения предварительно настроенной проверки этого узла. Если экземпляр находится в автономном режиме из-за обслуживания или непредвиденного сбоя, подсистема балансировки нагрузки может отобразить страницу состояния. В конфигурации высокого уровня доступности подсистема балансировки нагрузки может использоваться как элемент стратегии отработки отказа. Однако автоматический переход на другой ресурс пар высокого уровня доступности не поддерживается. Необходимо вручную повысить уровень экземпляра-реплики, прежде чем он начнет обслуживание запросов. Дополнительные сведения см. в разделе Настройка высокого уровня доступности.

Настройте подсистему балансировки нагрузки, чтобы проверить один из следующих URL-адресов:

  • https://HOSTNAME/status, если протокол HTTPS включен (по умолчанию);
  • http://HOSTNAME/status, если протокол HTTPS выключен.

Проверка вернет код состояния 200 (ОК), если узел работоспособен и доступен для запросов конечных пользователей.

Примечание. Если устройство находится в режиме обслуживания, в URL-адресе https://HOSTNAME/status вернется код состояния 503 ("Служба недоступна"). Дополнительные сведения см. в разделе Включение и планирование режима обслуживания.

Устранение неполадок с подключением через подсистему балансировки нагрузки

Если вы не можете подключиться к службам в экземпляр GitHub Enterprise Server через подсистему балансировки нагрузки, вы можете просмотреть следующие сведения, чтобы устранить проблему.

Примечание. Всегда тестируйте изменения в сетевой инфраструктуре и конфигурации экземпляров в промежуточной среде. Дополнительные сведения см. в разделе Настройка промежуточного экземпляра.

Ошибка: "Срок действия сеанса истек" для подключений к Консоль управления.

Если включить поддержку заголовка X-Forwarded-For в экземпляре и подсистемы балансировки нагрузки, возможно, вы не сможете получить доступ к Консоль управления экземпляра. Дополнительные сведения о Консоль управления и портах, необходимых для подключений, см. в разделах Администрирование экземпляра из консоли управления и Сетевые порты.

Если экземпляр GitHub Enterprise Server указывает, что срок действия сеанса истек при подключении к Консоль управления через подсистему балансировки нагрузки, попробуйте использовать одну из следующих конфигураций в подсистеме балансировки нагрузки.

  • Отключите заголовки X-Forwarded-For для подключений к экземпляру через порты 8080 и 8443.
  • Настройте подсистему балансировки нагрузки для работы на уровне 4 и используйте протокол PROXY вместо X-Forwarded-For для прохода по IP-адресам клиента. Дополнительные сведения см. в разделе Включение поддержки протокола PROXY в экземпляр GitHub Enterprise Server.

Дополнительные сведения см. в документации по подсистеме балансировки нагрузки.

Динамические обновления для проблем и проверка запусков не работают

Если доступ к экземпляр GitHub Enterprise Server осуществляется через подсистему балансировки нагрузки или обратный прокси-сервер, ожидаемые динамические обновления, такие как новые комментарии о проблемах и изменениях в индикаторах уведомлений или проверка выходных данных запуска, могут не отображаться до обновления страницы. Это особенно верно, если обратный прокси-сервер или подсистема балансировки нагрузки работают в режиме уровня 7 или не поддерживают требуемый протокол веб-сокета.

Чтобы включить динамические обновления, может потребоваться перенастроить подсистему балансировки нагрузки или прокси-сервер. Дополнительные сведения см. в документации по подсистеме балансировки нагрузки.