前回に引き続き。
あらためてリバースプロキシとは
あえて、調べ直す。
リバースプロキシ(英: Reverse proxy)または逆プロキシは、 特定のサーバへの要求を必ず経由するように設置されたプロキシサーバ。 一般的なプロキシとは異なり不特定多数のサーバを対象としない。 リバースプロキシは、不特定多数のクライアントから寄せられる要求に対して、 応答を肩代わりすることにより特定のサーバの負担を軽減したり、 アクセスを制限することにより特定のサーバのセキュリティを高めたりする目的に用いられる。
wikipediaの引用。
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7
分かるんだけどなんかしっくりこない。
何がリバース?
内部ネットワークと広域ネットワークとの接点に置かれ、 外部から内部へのアクセスを代行する。通常のプロキシ(代理サーバー)の「内部から外部へ」と反対であることが「リバース」の由来。
http://www.dnp.co.jp/artscape/reference/archive_words/detail/rvrs-proxy.html
なるほど、通常のプロキシとは逆方向だよということか。
Load balancer
HTTP、TCP、UDP のロードバランシングが出来るらしい。
Layer 7 request routing using URI, cookie, args, and more
レイヤ7はOSI参照モデルのアプリケーション層ですね。URIやクッキーとかを使ってルーティングする機能がある。Session persistence based on cookies *
クッキーでセッションを永続化する機能がある。Active health checks on status code and response body *
ステータスとレスポンスボティのヘルスチェック機能がある。Service discovery using DNS *
DNSを使ってサービス検出する機能がある。サービスディスカバリーってよく聞く言葉だな
ロードバランシングには5種類の方式が使えるらしい。
ラウンドロビン、最小接続数、ハッシュ、IPハッシュ(NGINX Plusのみ)、Least Time(NGINX Plusのみ)。NGINX Plusというのはnginxの商用版らしい。
- Round‑Robin (the default) – Requests are distributed in order across the list of servers.
- Least Connections – Each request is sent to the server with the lowest number of active connections, taking into consideration the weights assigned to the servers.
- Hash – Requests are distributed based on a user‑defined key such as the client IP address or URL. NGINX Plus can optionally apply a consistent hash to minimize redistribution of loads if the set of upstream servers changes.
- IP Hash (HTTP only) – Requests are distributed based on the first three octets of the client IP address.
NGINX Plus has an additional algorithm: - Least Time – Requests are sent to upstream servers with the fastest response times and fewest active connections.