[解決済み] APIゲートウェイとリバースプロキシの比較
2022-04-29 02:23:48
質問
マイクロサービスアーキテクチャに対応するため、リバースプロキシ(nginxやapache httpdなど)と併用して、クロスカッティングの実装を行うことが多い。 APIゲートウェイパターンが使用されている . リバースプロキシがAPIゲートウェイの仕事をすることもある。
この2つのアプローチの違いが明確になると良いですね。 APIゲートウェイの潜在的な利点は、複数のマイクロサービスを呼び出してその結果を集約することにあるようだ。それ以外の 責任 APIゲートウェイはReverse Proxyで実装することができる。例えば、以下のようなものです。
- 認証(nginxのLUAスクリプトを使用して行うことができます)。
- トランスポートセキュリティ。それ自体がリバースプロキシタスク。
- ロードバランシング
- ...
これを踏まえて、いくつかの疑問があるわけです。
- APIゲートウェイとリバースプロキシーを同時に使うことは意味があるのでしょうか(例:リクエスト -> APIゲートウェイ -> リバースプロキシ(nginx) -> 具象マイクロサービス)。どのような場合ですか?
- その他、API Gatewayで実装できてReverse Proxyで実装できない、またはその逆の違いはありますか?
どのように解決するのですか?
相互に排他的でないことを理解すれば、考えるのは簡単です。APIゲートウェイは特定のタイプのリバースプロキシ実装だと思えばいい。
ご質問の件ですが、APIゲートウェイはアプリケーション層として扱われ、負荷分散とヘルスチェックのためにリバースプロキシーの後ろに位置するというように、両者を組み合わせて使用することは珍しくありません。例としては、Web Application Firewall/API Gateway がリバースプロキシ層に挟まれた WAF サンドイッチアーキテクチャのようなものだ。
違いについては、非常によく似ています。単なる命名法です。基本的なリバースプロキシの設定に、認証、レート制限、動的な設定更新、サービス発見などの要素を追加していくと、人々はそれをAPIゲートウェイと呼ぶことが多くなります。
関連
-
[解決済み】Raspberry Piサーバーに対して小規模なDDoS攻撃を実行する【終了しました
-
[解決済み] NGINXを設定して、サブルートで場所(同じサーバー名の下)に応じて異なるシングルページアプリケーション(SPA...すなわち静的ファイル)をデプロイする方法
-
Nginx] エラー413 Request Entity Too Largeの解決方法
-
nginxの問題解決:上流からの応答ヘッダーの読み込み中に上流が接続を早々に切断した
-
解決済み net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)
-
Nginxのエラー処理方法:0.0.0.0:80へのbind()に失敗する
-
Nginxのエラー「The plain HTTP request was sent to HTTPS port」の解決方法。
-
[解決済み] Amazon API GatewayからAWS Lambdaにクエリストリングやルートパラメータを渡す方法
-
[解決済み] APIゲートウェイとリバースプロキシの比較
-
[解決済み] nginx 400 "The plain HTTP request was sent to HTTPS port" エラーへの対処法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] nginxのエラー "conflicting server name "を無視する [終了しました]。
-
アップストリームエラーの読み込み中に、アップストリームが接続を早々に切断した
-
nginx が "414 request-uri too large" と表示される。
-
Nginx設定ファイル(nginx.conf)の設定詳細
-
[解決済み] nginx - 2つのサブドメインの設定
-
[解決済み] NGINXのproxy_passまたはproxy_redirect
-
[解決済み】NGinx デフォルトの公開WWWの場所は?
-
[解決済み】Kubernetes サービス 外部 ip 保留
-
[解決済み] nginx が空白の PHP ページを表示する
-
[解決済み] React-routerとnginx