web-dev-qa-db-ja.com

IIS / ARR / URLRewriteを介したTeamCityNugetフィード

バージョン:

  • Windows Server 2008 R2 SP1
  • TeamCity 7.0.2
  • Tomcat 7.0.27
  • IIS 7.5
  • ARR 2.5
  • URL書き換え7.2.2

TeamCityは、JavaEEWARとして既存のTomcatインストールにインストールされます。 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サーバーを有効にすると、イライラする問題が発生します。

IISを介してプロキシするリモートホストからnugetフィードにアクセスしようとすると、HTTP404エラーが発生します。404エラーはIISから発生します。URLから最終パス部分を削除すると、404エラーが発生します。 Tomcatから来ています。

例:

したがって、どこかでIIS * .svcファイルのリダイレクトを尊重することに問題がありますが、私の人生では、理由やこれがどこに設定されているのかわかりません。

どんな助けでも大歓迎です。

2
Joseph Alcorn

書き換えルールは必要ないようです。 TeamCityサーバーのコンテキストパスがパブリックサーバーと同じであることを確認します。つまり、 http://public.com/contextPathおよび http:// localhost: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/)のインストールガイドもご覧ください。

これが機能しない場合は、サーバーログを[email protected]に添付してください。

1
Eugene Petrenko

ああ、投稿の力。質問した後、もう一度設定したルールを見てみることにしました。

ルールはサイトレベルで設定されました。それらをサーバーレベルに移動すると、すべてが魅力のように機能します。

1
Joseph Alcorn