Help us understand the problem. What is going on with this article?

プロキシとリバースプロキシの違いまとめ

はじめに

プロキシリバースプロキシってややこしいですよね。
この記事では、概念図を交えながら混乱しやすいプロキシとリバースプロキシの違いをまとめていきます。

プロキシとは

一般的に使われるプロキシといえば、「forward proxy」のことをさします。
forward proxyとは、ある別のWebサイトへのリクエストを受け取り、クライアントの代わりにWebサイトへリクエストを送信するサーバのことです。

こちらの図がforward proxyの概念図です。
クライアントXがとあるWebサイト(サーバZ)にアクセスする時にプロキシサーバYを利用している例です。
image.png

リクエストは クライアントX → プロキシY → WebサーバZ という流れで伝わっていきます。

プロキシを使う目的

このようなforward proxyを使う目的が、WebサーバZに直接アクセスできないクライアントXからZにリクエストを送信できるようにすることです。例としては、

  • クライアントがWebサイトの権限者からブロックされているとき(IPでブラックリスト)
  • Youtubeへの通信をブロックしている会社からYoutubeにアクセスしたいとき
  • 政府が特定のニュースサイトへの通信を遮断しているとき
  • 大学がHTTP以外のプロトコルを制限しているとき(研究室内のサーバにアクセスするために踏み台としてプロキシを使う)

などが挙げられます。

リバースプロキシとは

続いて、リバースプロキシについてみてみましょう。
image.png

リクエストの流れはプロキシと同様で、 クライアントX → リバースプロキシY → WebサーバZ のように伝わっていきます。しかし、リバースプロキシでは、クライアントXは、WebサーバZの存在を知らないという大きな違いがあります。

クライアントXは、Publicに存在しているリバースプロキシYと通信することで、リクエスト送信とレスポンス受信ができると考えるはずですが、実際はWebサーバZがその処理を行っています。

リバースプロキシを使う目的

リバースプロキシを使うと、クライアントとWebサーバの間にワンクッションが入ることで、様々な恩恵が得られます。
例えば、

  • 機密上の理由などでWebサーバをPublicにしたくないとき
  • Webサーバをダウンせずに何かしらのPublicな通信を遮断したいとき(リバースプロキシだけダウンさせれば良い)
  • 巨大なサイトを扱う場合(一つのWebサーバではトラフィックをさばけない。リバースプロキシの先に多数のWebサーバを用意することで、クライアントに近いサーバを選択的に使用できる)

などが挙げられます。

プロキシとリバースプロキシの違いまとめ

クライアントX → Y → サーバZ という流れがあるとき

  • Y = プロキシ :クライアントXはサーバZの存在を知っている
  • Y = リバースプロキシ :クライアントXはサーバZの存在を知らない

実践編ーDockerを使ってnginxでリバースプロキシを立ててみるも書いています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away