VPSサーバーは、通常のレンタルサーバーよりは単価が高いのでWordPressはロリポップを利用し、Djangoを用いた動的ページにはConoHaのVPSサーバーを利用する運用としました。なお、VPSサーバーにはサブドメインを利用します。
0.VPSサーバーでDjangoを始めてみたシリーズ
この記事は「VPSサーバーでDjangoを始めてみたシリーズ」の記事です。一連の記事は、以下のリンク集を参照してください。
1.サブドメインの扱い
私は現在、ロリポップ(レンタルサーバー)とムームードメイン(ドメイン管理会社)を使ってサイトを運営しています。そして、ConoHa のVPSサーバーを借りるにあたって、VPSサーバーには今使っているドメインのサブドメインを使用することにしました。
ConoHa のVPSサーバーにサブドメインを使うメリットは、現在のドメインに関連するサイトである事が明確になり、また、ドメインの維持費用が節約できることです。
なお、サブドメインと親ドメインはSEO上は全く別の扱いとなるため、例えばサブドメインのGoogle検索の評価が急上昇したとしても親ドメインの評価が上がるわけではありません。
また、注意点としてDjangoではサブドメインを示す部分にアンダースコア「_」が含まれるとエラーになることがあるようです。サブドメインの名称を考えるときには気をつけましょう。
2.DNSサーバーとは
ムームードメインのようなドメイン管理会社は、名前の通りドメインを管理していますが、ドメインに対応するIPアドレスも直接管理しているとは限りません。ドメインに対応するIPアドレスを実際に保存しているのはDNSサーバーであり、どこのDNSサーバーを選ぶのかは自分で設定することができます。
ドメイン名に対応するIPアドレスを直接管理するのはドメイン管理会社の仕事のようなイメージがあると思いますが、実際にはムームードメイン、ロリポップ、ConoHaはいずれもDNSサーバーを保有しており、どれを選んでもよいのです。
ただし、ドメイン管理会社には、どのDNSサーバーを選んだのかを登録する必要があり、登録はDNSサーバーの名称である「ネームサーバー名」をつかって登録します。ネームサーバー名を登録しなければ、どこでIPアドレスを管理しているのか分からないからです。
IPアドレスを直接管理しているのがDNSサーバーなのですから、ブラウザからドメイン名でアクセスを試みた場合、色々な所をたらい回しにされても最終的にはDNS(Domain Name System)サーバーでIPアドレスを確認します。
(1) レンタルサーバーのDNSサーバーを利用する場合
では、例えばムームードメインでドメインを取得し、ConoHaのVPSサーバーとDNSサーバーを利用した場合はどの様な設定が必要なのでしょうか。
ConoHaのDNSサーバーでは「レンタルしたVPSサーバーのIPアドレス」に対して「ムームードメインで取得したドメイン」を登録します。すると、この情報を管理しているサーバーのネームサーバー名が表示されます。 ネームサーバー名はDNSサーバーを示す名前であり、ConoHaでドメインを登録すると表示されます。なお、ConoHaでは「ns-a1.conoha.io」 「ns-a2.conoha.io」 「ns-a3.conoha.io」 といった名称です。
一方、ドメイン管理会社であるムームードメインにはIPアドレスではなく、ConoHaのネームサーバー名を登録します。
ムームードメインにネームサーバー名を登録するのは、ConoHaのDNSサーバーでドメインとIPアドレスが管理されていることを知らせているのです。
(2) ドメイン管理会社のDNSサーバーを利用する場合
実はムームードメインのような大きな会社では、ムームードメイン自身もDNSサーバーを持っています。つまり、ConoHaのDNSサーバーを使うのではなく、ムームードメインのDNSサーバーを使う方法も採用できます。
この方法の場合には、ConoHaのDNSサーバーは使わないので、ConoHaでのDNSサーバーの設定は不要になります。その代わりにムームードメインのDNS設定で、「ムームードメインで取得したドメイン」に対して「ConoHaのサーバーのIPアドレス」を関連づける設定を行う必要があります。
このように、どこのDNSサーバーを使うのかによって、設定方法が変わるので注意する必要があります。
3.サブドメインだけConoHaのVPSで使うには
ムームードメインで取得したドメインについて、親ドメインをロリポップ、サブドメインをConoHa VPSサーバーで使用する場合には、どのように設定すればよいのでしょうか。
この組み合わせの場合には、ロリポップやConoHaのDNSサーバーではなく、ムームードメインのDNSサーバーを利用するのが簡単です。
4.ドメインの具体的な設定方法
ロリポップのDNSサーバーはサブドメインを別のサーバーで使用できる機能がないため、ムームードメインのDNSサーバーを使います。具体的には以下の手順で設定を行います。
(1) ロリポップのDNSサーバーを使って設定する
最終的にはムームードメインのDNSサーバーを使うのですが、最初にロリポップのDNSサーバーを使って設定し、ムームードメインに移行します。設定方法は以下のリンクの「ロリポップ!だけで利用する場合」の手順に従います。
ロリポップ:独自ドメインご利用時の作業内容
なぜ、このような面倒な方法をとるのかについては後で説明します。
(2) ムームードメインのDNSサーバーに移行する。
以下のリンクの手順に従い、ロリポップのDNSサーバーから、ムームーDNSへ移行します。
ロリポップ:ムームーDNSへの移行
(3) ムームーDNSのカスタム設定
以下のリンクに従い、ムームーDNSで親ドメインをロリポップ、サブドメインをConoHa VPSのIPアドレスと関連づけます。
ムームードメイン:カスタム設定のセットアップ方法
リンク先の説明で「設定1」「設定2」の画像がありますが、最初にロリポップのDNSで登録し、ロリポップのDNSからムームーDNSに移行しなければ、「設定1」が空白のままになります。
私は最初、「設定1」の扱いがわからず悩んでしまいました。
「設定1」は、ひとまず、親ドメインのホームページの欄だけ「ロリポップ!」を選択すれば、ロリポップには親ドメインが関連づけられます。メール機能などを使用する場合は状況に応じて設定し直してください。
「設定2」は以下の設定を行う事で、サブドメインがConoHaのVPSサーバーに関連づけられます。例えば、親ドメイン「example.com」のサブドメイン「aaa.example.com」をConoHa VPSで使用する場合は、以下の内容を追加します。
- サブドメイン:aaa
- 種別:A
- 内容:ConoHaのVPSサーバーのIPアドレス
ConoHaのVPSサーバーのIPアドレスの確認方法は以下の通りです。
ConoHa:ご利用ガイドSSH接続でVPSにログインする
ムームードメインのDNSサーバーであるムームーDNSでは、設定2を使えばムームードメインで管理するドメインを、様々なサーバーに簡単に関連づけられるので非常に便利です。
(4) カスタム設定の設定2でロリポップを指定すればよいのでは?
ロリポップからムームーDNSに移行するという遠回りな設定を行いましたが、実は設定1を利用せず、ムームーDNSカスタム設定2で、親ドメインをロリポップのIPアドレスに関連づけることが可能です。
しかし、ロリポップでは基本的にロリポップのDNSサーバーを利用することが推奨されています。
そして、それ以外のDNSサーバーでは、ロリポップに関連する会社であるムームードメインへの「ムームーDNSへの移行」機能だけが公式に認められています。
理由としてはレンタルサーバーの運用上の都合により将来にわたってIPアドレスが同一である保証がないからだと思います。つまり、ロリポップのDNSサーバーを利用したり、ムームーDNSへの移行機能を利用すれば、ロリポップのIPアドレスが変更になっても連動するのではないかと思われます。
ですから、多少面倒でも「ムームーDNSへの移行」を利用することをお勧めします。
5.Nginx、Djangoの設定
IPアドレスを使ってNginxやDjangoの設定を行っていた場合には、IPアドレスをドメイン名に書き直す必要があります。
(1) Nginxの設定を修正
以下、「/etc/nginx/sites-available」のNginx設定ファイルの抜粋です。server_nameのIPアドレスをサブドメイン名に変更します。両側に「'」や「"」は不要です。
なお、proxy_pass http://127.0.0.1:8000;のIPアドレスはこのままです。
server {
・・・
server_name サブドメイン名;
・・・
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X_Forwarded-Proto $scheme;
proxy_pass http://127.0.0.1:8000;
}
・・・
}
(2) Djangoの設定を修正
Djangoプロジェクトのsettings.pyのALLOWED_HOSTSにサブドメインを加えます。
なお、VPSサーバーのIPアドレスは削除したほうがよいと思います。セキュリティー上のリスクを減らしたり、複数のドメインを扱う場合には混乱を招く原因になります。
'localhost'や'127.0.0.1'も不要ですが、Nginxやgunicornを停止し、動作を検証するときに使う可能性があるかもしれません。使用状況に応じて入れればよいと思います。
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'サブドメイン']
私が実際にレンタルしたVPSサーバー
私が実際にレンタルしたVPSサーバーはConoHa VPSです。私は1GBのプランを申し込みました。VPSサーバーは一般のレンタルサーバーと異なりOSやアプリケーションを自由に設定できるので、Pythonで計算した結果をサイトに表示することもできます。
なお、ConoHa VPSの特長として、サーバーのディスクイメージを丸ごとバックアップできるイメージ保存機能を無料で使用することができます。コードを変更して元に戻せなくなった場合にも安心です。
また、ConoHa VPSは途中でプランをスケールアップできるだけでなく、スケールダウンすることもできます。つまり、2Gプランを1Gプランに変更することができます。ただし、512MBプランだけはスケールアップ・ダウン機能が使用できないので注意してください。
また、初期費用なしで3日だけ借り、3日分の費用だけ払うといったことも可能なので気軽に始められます。※時間課金(月の上限額は決まっています)
私からの友達紹介でクーポンをゲット
なお、以下のリンクから入ると、私からの友達紹介の扱いとなり1000円分のクーポンが支給されます。リンク先には「友達紹介」といった表記がないので「友達紹介」が適用されているのか不安になりますが大丈夫です。登録終了後にログインしたユーザーTop画面を確認すると支給されたクーポン1000円が表示されるはずです。
なお、友達紹介では個人情報が紹介者には開示されないので安心してご利用ください。
その他
液晶ペンタブレットを購入しました
(1) モバイルディスプレイを買うつもりだったのに激安ペンタブレット購入
以下、私が光回線を導入した時の記事一覧です。
(1) 2020年「光回線は値段で選ぶ」では後悔する ←宅内工事の状況も説明しています。
(2) NURO光の開通までWiFiルーターを格安レンタルできる
(3) NURO光の屋外工事の状況をご紹介。その日に開通!
(4) 光回線開通!実測するとNURO光はやっぱり速かった
(5) ネット上のNURO光紹介特典は個人情報がもれないの?