5

Sonatype の Nexus を実行して、すべてのビルドを保存し、依存関係をキャッシュします。ただし、デフォルトのインストールのポート8081URL から離れて、代わりに Apache プロキシ経由で SSL 経由でホストしたいと考えています。Nexusを起動するようにApachemod_proxyをプロキシするようにセットアップしました。https://myserver.com/nexus仮想ホスト構成内で次の構成ディレクティブを使用しました。

# Configure mod_proxy to be used for proxying URLs on this site to other URLs/ports on this server.
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
  AddDefaultCharset off
  Order deny,allow
  Allow from all
</Proxy>

# Proxy the Sonatype Nexus OSS web application running at http://localhost:8081/nexus
<Location /nexus>
  ProxyPass http://localhost:8081/nexus
  ProxyPassReverse http://localhost:8081/nexus
</Location>

これは、 Running Nexus Behind a Proxyの手順と一致しているようです。ただし、Nexus の「ベース URL」設定をクリアできませんでした。空白のままにしておくことはできません。

HTTPS URL で Nexus にアクセスし、ログインして、ほとんどの GUI 機能を実行できます。

ただし、ログインすると、次の警告メッセージが表示されます。

警告: のベース URL 設定がhttp://myserver.com/nexus実際の URL と一致しません! Apache mod_proxy を実行している場合、それを使用した Nexus の構成に関する詳細情報は次のとおりです。

また、GUI のすべてが実際に機能するわけではありません。これまでのところ、次のことに気付きました。

  • システム フィード: 次のエラーが発生します。

    /nexus/service/local/feeds へのアクセスに問題があります。理由:

    リクエストによって識別されたリソースは、リクエストで送信された受け入れヘッダーに従って受け入れられないコンテンツ特性を持つ応答エンティティのみを生成できます

    Nexus がエラーを返しました: エラー 406: リクエストで識別されたリソースは、リクエストで送信された Accept ヘッダーに従って受け入れられないコンテンツ特性を持つレスポンス エンティティを生成することしかできません

  • ホストされたリポジトリの削除: いくつかの空で不要なリポジトリを調べて削除しました。ただし、削除を確認した後、最初の 1 つだけが削除されました。8081他のものを削除するには、サイトにログインする必要がありました。

4

2 に答える 2

4

ドキュメントによると、Apache 構成に RequestHeader を追加することがより良い解決策のようです。

RequestHeader set X-Forwarded-Proto "https"

受け入れられた回答を試してみましたが、これは機能しているように見えますが、RequestHeader を追加すると、Force URL のチェックを外すことができ、警告はクリアされました。ただし、OPが説明している他の動作はテストしていません。

于 2016-04-15T01:17:28.313 に答える
3

[管理] -> [サーバー構成] 画面で baseUrl 設定を調整するだけです。使用している URL を設定し、[Force Base Url] オプションをクリックします。

于 2013-09-30T16:06:53.357 に答える