問題タブ [netflix-zuul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
netflix - HTTPS URL への Zuul ルーティング時のエラー
Eureka に登録され、Eureka ダッシュボードに表示される Spring Boot アプリケーション (最近 HTTPS + 自己署名証明書用に有効化) があります。
ユーザーリクエストを取得してSpring Bootアプリケーションに渡すZuulフィルターレイヤーがあります。アプリが HTTP 経由でアクセスできるようになるまで、これは正常に機能していました。しかし、HTTPS を有効にすると、zuul ルーティングが失敗します。
私のyamlファイルのZuulルート構成は次のとおりです。私の Zuul Route 構成には、HTTPS 対応の URL/App 用の特別な構成が必要ですか?
これは例外スタック トレースです (Zuul が HTTPS URL ではなく HTTP URL にルーティングしようとしていることを示しています)。
更新: isRibbon セキュア プロパティを追加した後、このエラーはなくなり、新しいエラーが発生しました。
spring-cloud - Spring Cloud Zuul Monitor/CircuitBreaker Hystrix 経由のすべてのルート
Spring Cloud と @EnableZuulProxy を使用しています /hystrix.stream 経由で hystrix を使用して、application.yml で構成されたすべてのルートを監視することは可能ですか? 以下の例では、下流の製品サービスに対するすべてのリクエストを簡単に監視したいと考えています。製品サービス自体でこれを行うことができることは理解していますが、Zuul リクエストを監視することは可能ですか。これは、所有されておらず (サード パーティ)、@HystrixCommand で注釈を付けることができないダウン ストリーム サービスに役立ちます。
zuul:
routes:
item:
serviceId: product
path: /product/**
netflix - Zuul Route 設定で HTTPMethod を使用できますか?
/app/login への POST リクエストはhttp://abc:100/app/loginにリダイレクトする必要があり、 /app/login への DELETE リクエストはhttp://xyz:200/app/loginにリダイレクトする必要があります。Netflix Zuulルート構成でこれをどのように達成できますか? ルート設定で http メソッドに言及するオプションはありますか?
ここに、シナリオを説明するエントリがあります。
spring - spring-cloud サイドカー ルートが機能しない
@EnableSidecar を使用して spring-boot アプリを作成すると、登録された eureka クライアントの「offers」と「customers」のルートが作成され ( Mapped URL path [/customers/**] onto ...
)、ルートがhttp://localhost:9000/routesエンドポイントに表示されることがわかります。
ブラウザの zuul-proxy でhttp://localhost:9000/customersにアクセスすると、404 と考えられます。
私のapplication.yml
ZuulProxyApplication.java:
ログ出力:
eureka に登録された顧客とオファーのインスタンスが表示されます。また、次のように zuul-proxy アプリの RestTemplate を介してアクセスすることもできます。
http://localhost:9000/testを呼び出すと、これは機能します
登録されたルートhttp://localhost:9000/customersおよびhttp://localhost:9000/offersに対して 404 が返される問題は何でしょうか?
spring-security - Zuul が Eureka に登録されたマイクロサービスにリダイレクトした後、認証されたプリンシパルが失われる
Netflix スタックを操作するために、次のように設定しています。
- エウレカサーバー
- Zuul プロキシ (Eureka に登録済み) を使用して外部に公開されたモジュール
- 多数のバックエンド マイクロサービス (Eureka に登録済み)
私の問題は、プロキシで (マイクロサービスにリダイレクトされる) URL を 2 回目または 3 回目に呼び出すと、認証されたプリンシパルが失われることです。
ログ エントリは次のとおりです。
Zuul プロキシを実装しました。プリンシパルをリクエスト ヘッダーに渡してリダイレクトしますが、リクエストが 2 回目に送信されると、このフィルターは呼び出されません ( Spring Security はリクエストを匿名リクエストとしてキャプチャします)。
ここで何が起こっているのかについてのアイデアはありますか?
ありがとう
編集: Fiddler で調査したところ、2 つの要求が成功した後、拒否された要求が HTTP 302 コードで応答されることがわかりました。
編集 #2 : これは私の Spring のブート セキュリティ構成です。
spring - セッションを確立して共有するための Zuul の Spring Security Preauthorization フィルター
私は、Spring ベースのマイクロサービスを使用する大規模プロジェクトに取り組んでいる開発チームに所属しています。最近、Spring Cloud プロジェクトを発見し、Netflix サービス、Zuul、Eureka、Ribbon などの実装を実験しています。
私たちの環境では、アプリケーションが実行されるドメインには、外部サービスを通じて事前承認されるまで誰もアクセスできません。ユーザーがアプリケーションに到達すると、承認サービスによって提供されるヘッダー トークンを介してユーザーの ID を取得できます。
ユーザーのセッションを確立するために事前認証フィルターを使用して Zuul を Spring Security でセットアップし、Spring Session を使用してすべてのバックエンド マイクロサービスでセッションを利用できるようにしたいと考えています。
これは正当なアプローチですか?Zuul のセキュリティに関して私が確認できる唯一の情報は、OAuth2 トークンをバックエンド サービスにプロキシする機能ですが、OAuth2 は必要ありません。ユーザーのセッションを確立し、バックエンド アーキテクチャのサービス間で共有するためのより良い方法はありますか?
spring-cloud - netflix を使用して展開中にすべての要求を (同じサービスの) 特定のバージョンに転送する方法は?
異なるホストで実行されている同じサービスの 4 つのインスタンスがあります。そのサービスの新しいバージョンをノードごとにデプロイしています。展開中、着信要求はロード バランサーに従って任意のバージョン (ホスト) に転送されます。すべての受信リクエストを特定のバージョンに転送できる netflix の方法はありますか?
バージョンを定義できる一般的な方法はありますか (同じ serviceId に対して)。また、着信リクエストのヘッダーにバージョンが定義されている場合、それを使用してリクエストを特定のバージョンに転送できます。
次のようなものかもしれません:
Zuul プロキシでは、
サンプルサービスでは、
または同じサービスのバージョン管理を実現する他のメカニズムはありますか?
spring-cloud - Zuul 接続プールのサイズ
Zuul を単独で使用し、Ribbon やその他の Netflix コンポーネントを使用しない場合の接続プールのサイズの構成について質問があります。
Zuul を使用して要求を Mule サーバーにプロキシするシステムがあります。リボンではなく Zuul のみを使用しています。Mule サービスを呼び出す 4 つのルートを定義しました。これらのサービスの 1 つは実行時間が長く、おそらく呼び出しごとに約 3 秒かかります。
40 人の同時ユーザーでシステムをロードすると、このエラーが発生します
接続プールのサイズを変更する方法を理解するためにコードを調べたところ、このコードが見つかりました
最初は、zuul.max.host.connections の値を増やすだけで、ルートごとの最大サイズが増えると思っていましたが、同じシステム プロパティを使用してルートの合計最大数を設定していることに気付きました。接続。
このシステム・パラメーターの値を設定することは、プール・サイズを制御する正しい方法ですか? それとも、これらの接続をより適切に管理するために、リボンなどの別のコンポーネントを使用する必要がありますか?
spring - Zuul または eureka がホスト ヘッダーをサービス インスタンス ホストに設定
同じサービスの 3 つのインスタンスを使用しています。それらは eureka に登録されています。彼らの前にズールがいます。
サービスがコントローラの 1 つ (/login など) にリダイレクトしようとするたびに、ホスト名: ポート (ブラウザのアドレス フィールドに表示されます) に直接移動し、代わりに zuul プロキシを再度経由します。これにより、タイムアウトが発生します。サービスに入るヘッダーを追跡しています -host
サービスのホスト名に設定されたヘッダーがあります。
x-forwarded-host
代わりにアドレス from を使用するべきではありませんか? zuul/eureka にそれを強制する方法は? それとも、代わりにそれを使用するためにいくつかのスプリングブート構成を調整する必要がありますhost
か?