当社は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の起動

<

アクセスしてログを確認

タグ: , ,

備忘録:NGINXでWORDPRESSの設定例(php-fpmの設定をupstreamで指定する)


久しぶりにnginxでWORDPRESSを導入する仕事があったのでphp-fpm導入してみたらnginxフォルダーにphp-fpm.confが導入されていたのでこれを仮想サーバでどう呼び出すかやってみた。upstreamで指定するとマルチサイト運営では共通で使えるので良いですね。

nginxの本体側の設定

php-fpmの設定がupstreamで指定してるケース

この書き方はマルチサイトでサーバ運営する場合に良いですね。

upstreamの指定をfastcgi_passで呼び出す

実際に仮想サーバ側で呼び出す。upstreamの名前を記述するだけ。

タグ: , , ,

WORDPRESSを使う場合のよくあるマルチWP構成をnginxで対応するには


nginxでWORDPRESSを単体で使う際の設定はネットを探せば沢山あるが、巷でよくあるのが1つのサイトに複数のWORDPRESSをサブフォルダーにインストールしているケース。このパターンの設定事例は少ない。通常Apacheで使う場合は本体の設定を行えばサブフォルダーに設置したWPは特に特別な設定は不要だが、それ以外のWEBサーバではサブフォルダー毎に設定は必要です。また、最近のサイトは殆どがスマホ対応といえばレスポンシブでサイトを作っているが、未だにPCとスマホを分離して作っているケースも有る。大抵の場合はUser-agentで転送する方法を使っているが、ではnginxで使う場合はどう設定したらよいかわからない人も多いと思うので設定例を紹介したいと思う。もうちょっと見直せばよかったけど。。。若干冗長な設定もあるのですがご勘弁を。。。php-fpmの設定については今回省略しています。

フォルダー構成

nginx本体設定

/etc/nginx/nginx.confの編集です。

仮想サーバ本体設定WORDPRESS用

/etc/nginx/conf.d/fast.confの編集です。

/blogフォルダーにあるWORDPRESS用設定

/etc/nginx/conf.d/sub/blog.confの編集です。

/communityフォルダーにあるWORDPRESS用設定

/etc/nginx/conf.d/sub/community.confの編集です。

アクセス制御用の共通設定

/etc/nginx/conf.d/sub/common.confの編集です。

fastcgi用の共通設定

/etc/nginx/conf.d/sub/fastcgi.confの編集です。

タグ: , ,