教えてリバースプロキシ☆ 第一話「素晴らしき航海」
おはこにゃばちにんこ。
Dr.stoneがついに掲載順でワンピ抜いてわい歓喜。
もちろん毎週ってわけじゃないけど順調に看板級になってくれてうれしすな~。
あと大須賀めぐみの「マチネとソワレ」が最近のおすすめです。
過去作の魔王、Waltz、VANILLA FICTIONも面白いので読んでね読んでね。
特に魔王。「巨乳大好き」ってワードであんなに熱いシーンが読めるのは魔王だけ☆
というわけでひとしきり言いたいことは言ったので真面目なこと書きます。
最近リバースプロキシ周りの作業を初体験したので軽くまとめておこうと思いマッスル(筋肉)
私のようにおつむの弱いタイプの方がざっと内容を掴むのに最適な文章を目指していきたいと思います。
第一章:発端
調べるに至った経緯ですが、とある案件で
「サーバの切り替えを行う。切り替えるとDNS浸透まで時間がかかる。
その間、API連携してる外部サービスとうまく連携できるようにリバースプロキシの設定をおなしゃす」
と上司に依頼ことが発端でした。
正直最初に依頼を聞いた瞬間は
「裏場亜棲冨路機死だと・・・」
『知っているのか雷電!?』
「いや知らんす」
という脳内会議が開催されましたが
「あ~、リバースプロ棋士(?)ですか~」
などと宣いつつ別の作業をしてるふりをしながら華麗にググり、
概要を掴んで見事話を合わせることに成功しました。
ここから私の冒険が始まります。
第二章:探求
「ていうかリバースってなんだよ。まず素のプロキシについてkwsk」
状態からの開始だったのでそこから調べました。この人は本当に現役SEなんでしょうか。
"proxy=代理"という意味から察するに何かの代わりになるようなものであることが推察されます。
「そういえばプロキシサーバって言葉を聞いたことあるな~」と思ったのでそれでググります。
ふむふむ、クライアントの代わりにコンテンツを取得してくるサーバとな。
何がうれしいのかよくわかんないけどまあそういうもんなのねっと。
じゃあリバースの方をもうちょいちゃんと調べるか。
ふむ、なんかちょっとあれだけどコンテンツ(アプリ、Web)サーバの代わりにクライアントにコンテンツを返すサーバって感じかな?
・・・
ん?やってること同じじゃね?違いがよくわからんくなった。
ほんでもう少し調べました。
結論としてはまあ間に立つって意味では同じなんすね。
クライアントとサーバのどちらとセットかって違い。
(フォワード)プロキシ
クライアントとセット。クライアントの代わりに配信サーバからコンテンツを取りに行ったりするので、配信サーバから見たらアクセス者はプロキシサーバ=クライアントの匿名性が保たれる、みたいな感じっすかね。
映画とかで「~を踏み台にして」とかもこれなのかな?
他にも配信内容をキャッシュして高速配信、フィルタリングみたいなメリットもあるみたいだけど今回の要所じゃないので省きます。
リバースプロキシ
配信サーバとセット。クライアントから要求を受けて、配信サーバからコンテンツを取得、クライアントに渡してあげるやつ。
なるほど、確かにサーバ切り替えの時に使えるね。
これと配信サーバへのアクセス制限を組み合わせると、クライアントからはリバースプロキシサーバしか見えないわけで、セキュリティレベルも向上するっすな。
あと調べたらやっぱりそうだったけど、負荷分散にも使えるっすな。
第三章:流転
といわけで、今回依頼された話でいくと、リバースプロキシを使うことで
1.旧サーバAに、新サーバBへ向けたリバースプロキシを仕込む
2.外部サービスがサーバAのAPIにパラメータを渡す
3.サーバAは渡されたURL、パラメータを基にサーバBからコンテンツ取得
4.サーバAが外部サービスへコンテンツを返す
って流れが組めるんです。そうすると外部サービスの方はサーバ切り替えの影響がないんです。
文章が長くなってきたんです。全然最初書こうとした設定方法にただりついてないんですが待て次回。