Назад | Перейти на главную страницу

Настройте обратный прокси IIS 7 для подключения к TeamCity Tomcat

У нас есть IIS 7 веб-сервер настроен и хотел бы создать обратный прокси для TeamCity установка с использованием Кот на той же машине.

Сайт сервера IIS https://somesite и я бы хотел, чтобы TeamCity отображался как https://somesite/teamcity перенаправление на http://localhost:portnumber.

Я установил Расширение перезаписи URL-адресов IIS и Маршрутизация запросов приложений чтобы попытаться настроить обратный прокси, но не могу заставить его работать.

Ближайший ответ, который я нашел, - это старый вопрос StackOverflow: https://stackoverflow.com/questions/331755/how-do-i-setup-teamcity-for-public-access-over-https
у которого, к сожалению, нет рабочего примера.

Я немного искал, но не нашел подходящего примера.

Любая помощь приветствуется!

Просто потратив около 4 часов на настройку SSL для TeamCity (и используя ответы в этом потоке), мне удалось заставить это работать, используя опцию фермы серверов.

  • Я настроил ферму серверов TeamCity, в которую входил мой сервер TeamCity на 127.0.0.1, используя порт 8080, и разрешил Правилам маршрутизации приложений создать соответствующее правило маршрутизации фермы серверов.

  • Затем я создал веб-сайт под названием TeamCitySecureProxy, который настроил с помощью самозаверяющего сертификата. В привязках я настроил только https / 443 (без http / 80).

  • Часть, которую мне не хватало: - Затем я щелкнул узел «TeamCity» в разделе «Фермы серверов» в IIS, выбрал «Прокси» на панели «Ферма серверов» и поставил галочку напротив «Узел обратной перезаписи в заголовках ответов».

Теперь у меня есть безопасная конечная точка для доступа к моей простой установке http TeamCity.

Убедитесь, что проксирование ARR включено в графическом интерфейсе IIS. Вероятно, вы захотите сохранить заголовок хоста (может потребоваться отредактировать applicationHost.config вручную или использовать appcmd, чтобы установить его), а также включить обратную перезапись хоста в параметрах заголовка ответа, чтобы браузер отправлял запросы и видел ответы, которые соответствуют Хост сертификата SSL.

  1. Сайт IIS на 443 (а может и на 80?) - прослушивание всех запросов (не указывать имя хоста)
  2. посмотреть все входящие пути: сопоставить URL (.*)
  3. найдите путь TeamCity, сохраните остаток пути: условие {URL} Спички ^teamcity(/.*)?
  4. перезаписать с сохраненным путем: действие перезаписать, http://localhost:port/{C:1}
  5. добавление строки запроса проверено
  6. и прекратить обработку дальнейших правил, вероятно, проверено

Я думаю, это должно сработать.

<rule name="Demo Rule" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{URL}" pattern="^teamcity(/.*)?" />
    </conditions>
    <action type="Rewrite" url="http://localhost:8080/{C:1}" />
</rule>

Вы также можете использовать для этого соединитель.

Есть старый соединитель ISAPI (перенаправитель), доступный напрямую от Apache, или есть также новый, доступный от RiaForge (кажется, что его легче запустить).

http://tomcatiis.riaforge.org/

Я только что сделал это сам и только что опубликовал об этом в блоге.

Кажется, вы установили все требования, теперь вам просто нужно настроить сервер:

http://bronumski.blogspot.com/2010/10/host-teamcity-in-iis7.html