当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

NGINXでロードバランシングの実験を1台のマシン(仮想マシンもOK)でする方法

NGINXでロードバランシングの実験を1台のマシン(仮想マシンもOK)でする方法


NGINXにはReverseProxy機能の中にロードバランシング機能がある。これを使うと簡単に手軽な振り分けでスケールアウトができてしまう。昔はF5のBIG IPの製品を使うことが多かったが今となってはCPUスペックも上がってソフトウェアレベルで簡単にできるからいい時代になった。更にクラウドの仮想マシン、Kubernetes側でも簡単にロードバランシングができる。凝ったロードバランシングをしたかったらこのNGINXのReverseProxy機能のロードバランシングは使えると思います。

nginxの本体設定とロードバランスのリスナー側設定

Linuxのディストリビューションはどれでも良いと思います。次のような本体側のnginx.confとporxy用の設定、仮想サーバの設定を用意しましょう。今回は仮想サーバを1台のコンピュータ上に4台立ててロードバランシングを行います。

以下の設定は/etc/nginx/conf.dの直下に配置する。proxy.confという名称で保存します。この設定は見てわかるようにロードバランスするReverseProxyの役割を行う。重み付けでweightの数を上げれば割当される頻度はあがる。

仮想サーバ3台(ロードバランスワーカー)設定

3つの仮想ドメインでサーバを起動する。1台のコンピュータ&1枚のNIC上で処理を行うためホスト名変更と各々ポート番号をずらす設定が必要となる。

サーバコンピュータ内のサーバ名を騙すため/etc/hosts内に架空のサーバ名を定義

NGINXの起動

<

アクセスしてログを確認

タグ: , ,

HTTP2対応 CaddyWEBサーバで仮想サーバ作る場合のやり方


caddy Webサーバで仮想サーバを作る場合は、/etc/caddy/配下にvhostsフォルダを作成し大元の設定ファイルをコピーしてドメインに該当する箇所とSSLの在り処、Pushする箇所のみ書き換えれば良い。
仮想サーバ設定はimportのある最下行だけ削除しましょう。仮想サーバ設定ファイルは名前は何でも良い。拡張子が.confであるならすべてそのフォルダーにあるファイルを読み込んでくれる。 仮想サーバは大元設定ファイル(Caddifile)の一番最下行にあるimport文で仮想ホストのインクルードを行う。ワイルドカードが使えるのでこの一行でvhostsに配置する仮想サーバ設定は終わりだ。 今回はWEBメールのRoundcubeとPhpMyadminを以下の設定を修正してやってみたがあっさり動いた。caddyは設定が簡単でいいね。

※設定ファイルの編集前に事前にフォルダー/etc/caddy/vhostsは作る必要があります。

タグ: , , ,

delegated proxyサーバで1台のサーバに仮想サーバを複数立ち上げる方法


delegated proxyサーバを運用する場合、1台のサーバで複数サイトをどうやったら起ち上げられるのか悩んでしまう人が多いみたいなのでやり方をご紹介しようと思います。apacheサーバだと簡単に仮想サーバ作れるのですがdelegated proxyサーバだとあまり情報がネット上にも落ちていなく困ってしまうのでしょう。



下記のスクリプトは1台のサーバに複数の仮想サーバをdelegated proxyで起動したいケースのスクリプトです。delegatedでのやり方は複数あるのですが一番手間のかからないやり方は下記のポート番号を複数台でユニークに設定して割り付ける方法かと思います。内部サーバを予め起動して外部の接続を名前ベース(FQDNドメイン名)で振り分ける手法になります。nvhostは名前ベースの名称割付箇所で外部からのリクエストをproxyが名前で任意の内部サーバへ割り当てる基準とするオプションです。nvservは共通の IP アドレスを持つ内部サーバー郡のホスト名を検出し、 それらを仮想サーバーとして表す場合のオプションになります。nvservはIPベースでは同じサーバを指しても問題ないのですが、proxyが勘違いしないように名前で判別するためのものです。nvhostがフロントエンドでnvservが1IPの際のバックエンド名前割当と考えればわかりやすいかもしれません。





他にも内部サーバの1枚のNICに複数のIPアドレスを割り付けてやる方法もあります。この場合はMOUNT行を変更するだけで実現できます。nvservが不要です。

タグ: , , ,