0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プロキシとリバースプロキシ

0
Posted at

はじめに

こんにちは、 @hayatohanaoka です。

今回は、Web開発においてよく聞く
「プロキシ」と「リバースプロキシ」
について書かせていただきます。

イマイチ理解ができていなかった人や、初めてその言葉を聞いた人向けに、
両者の違いを図解付きで整理していきます!!

記事が読み終わった頃には、それぞれについての理解が深まっていると最高です!!

よければ最後までお付き合いください!!

プロキシ(フォワードプロキシ)とは?

クライアント側に立って、サーバーへの通信を集約し、そのままサーバーに流すもの

複数のクライアントからの通信をプロキシが集約し、外部サーバーへ代わりにアクセスします。
外部サーバーから見ると、アクセス元はプロキシであり、サーバーに対して、クライアントの正体は隠された状態になります

代表的なユースケース

  • 企業内ネットワーク: 社内PCからの外部アクセスをプロキシ経由に制限し、不正なサイトへのアクセスをブロックする
  • VPN: 自分のIPアドレスを隠してインターネットにアクセスする
  • キャッシュ: よくアクセスするコンテンツをプロキシがキャッシュし、通信量を削減する

リバースプロキシとは?

サーバー側に立って、サーバーへの通信を集約し、よしなにサーバーを選んで流すもの

クライアントはリバースプロキシとだけ通信します。
クライアントから見ると、通信先はリバースプロキシであり、クライアントに対して、裏のサーバーの正体は隠された状態になります

代表的なユースケース

  • Nginx / ロードバランサー: 1つのドメインで受けたリクエストを、裏の複数サーバーに振り分ける
  • CORS回避: フロントエンドとAPIを同一オリジンに見せることで、ブラウザのCORS制約を回避する
  • SSL終端: リバースプロキシでHTTPSを処理し、裏のサーバーはHTTPのままにすることで構成をシンプルにする

両者の違い

並べてみると、違いは「誰の前に立つか」だけです。

プロキシ リバースプロキシ
立ち位置 クライアント側 サーバー側
誰を隠すか クライアントを隠す サーバーを隠す
誰が正体を知らないか サーバーがクライアントの正体を知らない クライアントがサーバーの正体を知らない

まとめ

どちらも「間に立って通信を仲介する」という役割は同じです。
...が!!
クライアント側に立って、サーバーへの通信を集約し、そのままサーバーに流すのがプロキシ
サーバー側に立って、サーバーへの通信を集約し、よしなにサーバーを選んで流すのがリバースプロキシ
という違いがあるのでした。

最後まで読んでいただき、ありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?