Версии:
TeamCity устанавливается в уже существующую установку TomCat как JavaEE WAR. IIS успешно настроен для обратных вызовов прокси для TeamCity. Мое правило перезаписи приведено ниже:
<rule name="TeamCity Redirect" stopProcessing="true">
<match url="^(TeamCity.*)" />
<action type="Rewrite" url="http://localhost:8080/{R:1}" logRewrittenUrl="true" />
</rule>
У меня нет проблем со входом в TeamCity с удаленного хоста и его использованием / администрированием. Однако, когда я включаю встроенный сервер NuGet, я сталкиваюсь с неприятной проблемой.
Попытка получить доступ к каналу nuget с любого удаленного хоста, проксирующего через IIS, дает мне ошибку HTTP 404. Ошибка 404 исходит от IIS. Когда я удаляю последнюю часть пути из URL-адреса, ошибка 404 исходит от Tomcat.
Пример:
Итак, где-то у меня возникают проблемы с IIS, соблюдающим перенаправление с файлами * .svc, но, хоть убей, я не могу понять, почему и где это установлено.
Любая помощь приветствуется.
Кажется, вам не нужны никакие правила перезаписи. Убедитесь, что путь контекста сервера TeamCity такой же, как на вашем публичном сервере, т.е. http://public.com/contextPath и http: // локальный: 8080 /contextPath.
TeamCity использует URI запроса для создания канала NuGet, поэтому вы должны убедиться, что ваш прокси-сервер предоставляет заголовки HOST, X-Forwarded-Host, X-Forwarded-Server, X-Forwarded-For. Вы можете включить / проверить журнал доступа tomcat, чтобы узнать, какие запросы поступают из IIS в TeamCity.
Также ознакомьтесь с руководством по установке на http://blog.endjin.com/2010/11/a-step-by-step-guide-to-hosting-teamcity-in-iis-7/
Если это не сработает, приложите журналы сервера к teamcity-feedback@jetbrains.com
Ах, сила публикации. Задав вопрос, я решил еще раз взглянуть на правила, которые я установил.
Правила устанавливались на уровне сайта. Я переместил их на уровень сервера, и все работает как шарм.