Налаштуйте IIS 7 Reverse Proxy для підключення до TeamCity Tomcat


12

У нас налаштований веб-сервер IIS 7 і ми хотіли б створити зворотний проксі-сервер для установки TeamCity, використовуючи Tomcat на тій же машині.

Сайт сервера IIS є, https://somesiteі я хотів би, щоб TeamCity з'явився як https://somesite/teamcityпереадресація http://localhost:portnumber.

Я встановив розширення для перезапису URL-адреси IIS та маршрутизацію запитів додатків, щоб спробувати встановити зворотний проксі, але не можу працювати.

Найближча відповідь, яку я знайшов, - це старе запитання StackOverflow: /programming/331755/how-do-i-setup-teamcity-for-public-access-over-https,
яке, на жаль, не працює приклад.

Я дуже багато шукав, але не можу знайти відповідний приклад.

Будь-яка допомога вдячна!


Я також помітив, що за допомогою цього методу деякі кнопки в TeamCity призводять до "http" замість "https" ... можливо, це не є гарним способом зробити це. Хоча це може бути переписано, чи означає це перший дзвінок із усіма даними, що надсилаються у простому тексті? hmmm
tofutim

Відповіді:


12

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

  • Я налаштував ферму серверів TeamCity, яка включала мій сервер TeamCity на 127.0.0.1 за допомогою порту 8080, і дозволила Правилам маршрутизації додатків створити відповідне правило маршрутизації ферми серверів.

  • Потім я створив веб-сайт під назвою TeamCitySecureProxy, який налаштував за допомогою самопідписаного сертифіката. На вкладках я налаштував лише https / 443 (без http / 80).

  • Частина, якої мені бракувало: - Потім я натиснув вузол 'TeamCity' у розділі 'Фермерські сервери' в IIS, вибрав 'Проксі' на панелі 'Ферма серверів' і поставив галочку 'Зворотний перезаписати хост у заголовках відповідей'.

Тепер у мене є безпечна кінцева точка для доступу до моєї простої установки http TeamCity.


1
Я отримую "502 - Веб-сервер отримав недійсну відповідь під час дії шлюзу або проксі-сервера." - чи стикалися ви з цим у своїй подорожі, і якщо так, як ви це виправили?
mcintyre321

Це рішення спрацювало на мене. Хост зворотного перезапису необхідний, інакше деякі кнопки призводять до http замість https. Дякую Уоррен
tofutim

У цьому сценарії є деякі проблеми з сервером nuget. :(
tofutim

1

Ви також можете використовувати роз'єм для цього.

Є старий роз'єм ISAPI (переспрямовувач), доступний безпосередньо в Apache, а також новий доступний від RiaForge (цей, здається, простіший запуск).

http://tomcatiis.riaforge.org/


1
що з *.jarфайлами? Я встановив це на моєму IIS 7.5, але він просто обслуговує *.jspвміст ... :( У мене є vaadin-6.6.2.jarфайл у корені мого розгорнутого web-файлу. Я думаю, що BonCode AJP Connector обробляє лише JSP, я можу побачити параметр Boncode-Tomcat-JSP-Handler"Обробник карти" в IIS, але не встановлено, що слід робити з *.jarфайлами
Sk8erPeter

1

Переконайтеся, що функція пропускної спроможності ARR включена в інтерфейсі IIS GUI Ви, мабуть, хочете зберегти заголовок хоста (можливо, потрібно буде відредагувати 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>

0

Я щойно це робив сам і щойно опублікував блог про це.

Здається, ви встановили всі вимоги, тепер вам просто потрібно налаштувати сервер:

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


Без радості від публікації. Я вже спробував варіант ServerFarm. Мені потрібно, щоб він працював лише на SSL, IIS не прив’язаний до 80 лише 443. Також потрібно, щоб сайт працював так, як описано в корінці запитання / teamcity, і в публікації недостатньо деталей, щоб він працював таким чином. Дякую за посилання, хоча
Cynicszm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.