前回までの振り返り
前回の投稿でお話させていただいた自宅にあるラズパイをウェブサーバ、AWSのEC2サーバをリバースプロキシとして利用し、Wordpress環境を構築しました。
今回、この環境構築で紆余曲折しながらも対応したことをリストにして記載させていただきます。
(対応したこと)
1:1ドメインで複数ウェブサーバの立ち上げ ※今回の投稿はこの内容
2:EC2に独自ドメインを割り当て、アクセスしてきたドメイン名によって、指定のウェブサーバに振り分け(LB)の実施
3:Wordpressのへのアップロードファイルサイズの上限容量変更
4:プラグインのAll-in-one migrationが100%で止まっている時の対処法
5:リバースプロキシ環境でのWordpressのSSL化対応
6:Wordpressのバックアップファイル自動作成術
7:複数サーバの複数サイトのデータを自動バックアップ
正直、そこまで対応したことは多くなかったです。元々個人的にJavascriptやPHP、HTML/CSSの勉強目的でウェブアプリを作っていたので、ある程度環境は整っておりました。今回は、No.1の対応を投稿し、後日、No.2以降を順に投稿していこうと思います。
1つのドメインで複数のウェブサーバに制御してみた(LB)
ドメインで複数のウェブサーバに振り分けた方法について、説明します。まず初めに、nginxのConfig修正を実施しました。
1:nginxのConfigを修正
Nginxのnginx.confの設定を変更する必要があります。変更後のConfigやnginx.confの保存場所は下記の通りとなります。
・nginx.confの保存場所:/etc/nginx/nginx.conf
< 変更後のConfig内容>
server{
listen 80;
server_name <ここにサーバのドメイン名を記載>
location /{ ※デフォルトのドメイン名でアクセス可能となる設定
resolver 8.8.8.8;
proxy_pass http://<IP アドレスA>
}
location /<server A>{ ※Server A に振り分け
resolver 8.8.8.8;
proxy_pass http://<IP アドレスA>
}
location /<server B>{ ※Server Bに振り分け
resolver 8.8.8.8;
proxy_pass http://<IP アドレスB>
}
}
上記の設定を投入することで「 http://aaaa.co.jp 」や 「 http://aaaa.co.jp/serverA 」の場合、IP アドレスAのwebサーバに振り分けられます。また、「 http://aaaa.co.jp/serverB 」の場合、IP アドレスBのwebサーバに振り分けられます。この対応により、1ドメインで複数のwebサーバに振り分けることが可能です。
イメージ図は、以下の通りとなります。
nginxの再起動
①nginxの文法確認
sudo nginx -t
②nginxの再起動
sudo systemctl restart nginx.service
上記の①のコマンドでは、nginx.confの文法を確認し、問題があればエラー、問題がなければOKの文言が表示されます。このコマンドで確認後、問題なければ、さまざまコマンドがあるかと思いますが、②のコマンドでnginxの再起動を実施致します。この2つの対応で指定のURLとIPアドレスが紐づけられます。
(成功時の出力結果)
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
(失敗時の出力結果(例))
nginx: [emerg] location "/50x.html" is outside location "/serverA_blog/" in /etc/nginx/nginx.conf:66
nginx: configuration file /etc/nginx/nginx.conf test failed
まとめと今後の課題
今回、対応した内容は数ある対応方法の1つに過ぎません。より良い方法があるかもしれませんが、そこはご容赦いただければと思います。
また、この対応を実施した後に友人のホームページはアドセンスやアフェリエイトを実施したいという背景があったため、独自ドメインを取得しないとGoogleから承認が降りづらいという話をされました。そのため、この対応は無意味となってしまいました。。。元々、極力お金をかけずに構築したいという話でしたので、コストを抑えられないかと考え対応したのですが、仕方ないですね。。。
次回は、独自ドメインの取得からそのドメインを指定のサーバに振り分けた対応方法を投稿したいと思います。