はじめに
このシリーズでは、文系出身未経験入社の開発エンジニア2年目の自分が、
なんとなく分からずにモヤモヤしていた知識や疑問をざっくりと解説していきます。
ざっくりとなので、多少正確性を欠くことがありますが、もし誤った記載がありましたらご指摘いただけますと幸いです。
プロキシとは?
英語だとproxy、「代理人」とかそういう意味です。
といってもピンと来ないと思います。
自分は、
プロキシ=お手伝いさん
のようなイメージを持つとしっくりきました。
つまり、
誰かのお手伝いをする役割のサーバー(=コンピュータ)です。
プロキシは2種類ある!
実は「プロキシ」と呼ばれるものは2種類あります。
①フォワードプロキシサーバー
②リバースプロキシサーバー
の2つです。
このうち、単に「プロキシ」と呼ばれることが多いのは
①フォワードプロキシサーバー の方です。
(「プロキシ」の意味がいまいち分かりにくいのはこれが原因な気がします。)
以下に両者の違いを、
「何のお手伝いさんなのか?」
という観点で解説します。
フォワードプロキシサーバーとは?
フォワードプロキシサーバーは、クライアントのお手伝いさんです。
補足:
クライアントとは、ユーザーの利用しているデバイスのこと、
つまりあなたがこの記事を読んでいるスマホなりPCなりのことです。
クライアントは「サーバー」と対になる概念で、ここではQiitaというサービスを運営しているコンピュータのことです。
フォワードプロキシサーバーは、クライアントがサーバーへのリクエストを送るお手伝いをします。
具体的には、
- 特定のサイトをフィルタリングし、アクセスできないようにする
→学校のパソコンで、学習に関係ないサイトは閲覧できないようになる - クライアントのIPアドレスを隠し、匿名でサイトにアクセスできる
→特定の国からは閲覧できないコンテンツも閲覧できるようになる
等々のお手伝いをします。
リバースプロキシサーバー
リバースプロキシサーバーは、サーバーのお手伝いさんです。
リバースプロキシサーバーは、クライアントからのリクエストをサーバーが処理するのをお手伝いします。
具体的には、
- キャッシュを保持し、サーバーの負荷を軽減&応答速度を早くする
→同じクライアントが何度も同じ内容のリクエストを送ってきても安心 - リクエストを適切なサーバーに振り分けて、サーバーの負荷を軽減する
→ロードバランサー(LB)のような役割
等々のお手伝いをします。
フォワードプロキシサーバー/リバースプロキシサーバーの役割は、
上に挙げた他にもまだまだあるので、興味があれば調べてみてください。
おわりに
IT業界で当たり前のように使われている用語や概念って、
なにを指しているのか曖昧だったり、分かりづらかったりすることが多い気がします。
特に未経験で入社すると、「これってどういう意味なんだろう?」と思って調べてみても、結局曖昧な理解のままになってしまい、
上司の指示がちゃんと理解できずに怒られ、結果としてITエンジニアという仕事に苦手意識を持ってしまう...というようなことも少なくないのではないでしょうか?
この記事が、そんな悩みを抱えている方の一助になることができれば幸いです。