サイトが攻撃で落ちた時に、別サーバーへすぐ切り替える方法【エックスサーバーで簡単運用】

WordPressのサーバー移転やDNS変更、hostsファイルを使った事前確認などでは、現在利用しているレンタルサーバーの「IPアドレス」を確認したいことがあります。

この記事では、エックスサーバー、ConoHa WING、さくらのレンタルサーバ、ロリポップ!、Cloudflareを利用している場合など、環境別にサーバーIPを確認する方法を紹介します。

また、最後に「サーバー障害時に予備サイトへ切り替えたい場合」の考え方についても解説します。

1 まず知っておきたい「サーバーIP」とは

Webサイトにアクセスするとき、通常はexample.comのようなドメイン名を使用します。

実際には、そのドメイン名がDNSによってIPアドレスへ変換され、Webサーバーへ接続しています。

たとえば、hostsファイルを使ってDNS変更前の新しいサーバーを確認する場合は、次のように「IPアドレス」と「ドメイン名」を指定します。

157.112.xxx.xxx example.com
157.112.xxx.xxx www.example.com

wwwあり・wwwなしの両方でサイトを確認したい場合は、両方を記述しておくと確認しやすくなります。

ただし、本番サイトでは通常、example.comまたはwww.example.comのどちらかを正規URLとして決め、もう一方から正規URLへリダイレクトします。

2 エックスサーバーのIPアドレスを確認する

2.1 🔵 エックスサーバーの場合

  1. サーバーパネルへログインします。
  2. 「サーバー情報」を開きます。
  3. 表示されている「IPアドレス」を確認します。

ここに表示されているIPアドレスが、利用しているサーバーのIPアドレスです。

例:157.112.xxx.xxx

サーバー移転前にhostsファイルを変更してWordPressの動作確認を行う場合にも、このIPアドレスを使用できます。

3 ConoHa WINGのIPアドレスを確認する

3.1 🔵 ConoHa WINGの場合

  1. ConoHaのコントロールパネルへログインします。
  2. 上部メニューから「WING」を開きます。
  3. 「サーバー管理」をクリックします。
  4. 「契約情報」をクリックします。
  5. 「サーバー情報」を開きます。
  6. 「スペック」に表示されている「IPアドレス」を確認します。

「スペック」にはIPアドレスのほか、ホスト名、CPU、メモリなどの情報も表示されます。

4 さくらのレンタルサーバのIPアドレスを確認する

4.1 🔵 さくらのレンタルサーバの場合

  1. サーバーコントロールパネルへログインします。
  2. メニューから「サーバー情報」を開きます。
  3. 表示されたサーバー基本情報を確認します。
  4. IPv4アドレスを確認します。

hostsファイルやAレコードなどでIPv4アドレスが必要な場合は、ここで確認したアドレスを使用します。

5 ロリポップ!の場合

5.1 🔵 ロリポップ!の場合

ロリポップ!では、まずFTPサーバーなどの接続情報をユーザー専用ページから確認できます。

  1. ロリポップ!のユーザー専用ページへログインします。
  2. 「ユーザー設定」から「アカウント情報」を開きます。
  3. FTPサーバーなどの接続情報を確認します。

ホスト名から現在名前解決されるIPアドレスを確認したい場合は、Windowsのnslookupなどを使用できます。

たとえばコマンドプロンプトを開き、次のように入力します。

nslookup example.com

または、FTPサーバーのホスト名を調べる場合は、そのホスト名を指定します。

nslookup ftp.example.com

結果にIPアドレスが表示されます。

なお、確認したいのが「Webサイトの接続先IP」なのか「FTPサーバーの接続先IP」なのかによって、調べるホスト名が異なります。

FTPサーバーのIPアドレスとWebサイトのIPアドレスが必ず同じとは限らないため注意してください。

6 Windowsでnslookupを使う方法

管理画面でIPアドレスが分からない場合は、DNSで現在公開されているIPアドレスをnslookupで確認できます。

  1. Windowsのスタートメニューを開きます。
  2. 「cmd」と入力してコマンドプロンプトを起動します。
  3. 次のコマンドを入力します。
nslookup example.com

たとえば、

Name:    example.com
Address: 157.112.xxx.xxx

のように表示されれば、Addressに表示されている値が、そのドメイン名から現在名前解決されているIPアドレスです。

ただし、CloudflareなどのCDNやリバースプロキシを利用している場合は、この方法でWebサーバー本体のIPアドレスを確認できないことがあります。

7 Cloudflareを使っている場合は注意

7.1 🔵 Cloudflareを利用している場合

CloudflareでDNSレコードのプロキシを有効にしている場合、通常のDNS検索ではCloudflare側のIPアドレスが返されます。

そのため、nslookupで表示されたIPアドレスが、実際のレンタルサーバーのIPアドレスとは限りません。

Cloudflareを利用しているサイトのオリジンサーバーIPを確認したい場合は、まずレンタルサーバー側の管理画面で確認するのが安全です。

IPアドレスを調べるだけの目的で、Cloudflareのプロキシを安易にOFFにすることはおすすめしません。

プロキシをOFF(DNS only)にすると、DNS検索でオリジンサーバーのIPアドレスが公開される状態になります。

Cloudflareを利用している場合は、「DNSで見えるIP」と「実際のレンタルサーバーのIP」を区別して考えることが重要です。

8 FFFTPからIPアドレスを確認できる場合もある

8.1 🔵 FFFTPの接続情報を確認する

FFFTPはFTPクライアントソフトです。

FFFTPでサーバーへ接続すると、接続時のログなどに接続先のホスト名やIPアドレスが表示される場合があります。

  1. FFFTPを起動します。
  2. 対象サーバーへ接続します。
  3. 接続時のログを確認します。
  4. 接続先IPアドレスが表示されていれば、その値を確認します。

ただし、FFFTPに登録されている「ホストの設定名」や「ホスト名」がそのままIPアドレスとは限りません。

たとえば、

sv1234.xserver.jp

のようなホスト名が設定されている場合もあります。

その場合は、レンタルサーバーの管理画面でIPアドレスを確認するか、必要に応じてホスト名をnslookupで確認してください。

9 サーバーIPを確認するときの優先順位

サーバーIPを調べる場合は、次の順番で確認すると分かりやすくなります。

  1. レンタルサーバーの管理画面を確認する
  2. 公式マニュアルを確認する
  3. nslookupdig で名前解決を確認する
  4. FTPソフトなどの接続ログを補助的に確認する

特にCloudflareなどを利用している場合は、DNS検索だけで「これがサーバー本体のIP」と判断しないようにしてください。

10 サーバー障害時に予備サイトへ切り替えることはできる?

サーバー障害や高負荷が発生したとき、別のサーバーや予備サイトへアクセスを切り替えたい場合があります。

ここで注意したいのは、.htaccessだけでCPU使用率やサーバー負荷を自動判定することはできないという点です。

たとえば、次のような条件を書いたとしても、

RewriteCond %{ENV:OVERLOADED} =1

Apacheが自動的にサーバー負荷を測定してOVERLOADED=1を設定してくれるわけではありません。

このような環境変数を使う場合は、別の仕組みであらかじめ値を設定する必要があります。

11 緊急時に手動で予備サイトへ切り替える例

「サーバーに異常があるので、一時的に別のサイトへ移動させたい」という用途であれば、手動で302リダイレクトを設定する方法があります。

Apacheの.htaccessで設定する場合の一例です。

RewriteEngine On

RewriteRule ^ https://backup-example.com/ [R=302,L]

この設定を有効にすると、アクセスしたユーザーを一時的にhttps://backup-example.com/へ転送します。

一時的な切り替えなので、恒久転送を表す301ではなく302を使用しています。

WordPressサイトで使用する場合は、通常はWordPressが自動生成する# BEGIN WordPressより前に記述します。

復旧したら、このリダイレクト設定を削除してください。

12 自動で予備サーバーへ切り替えたい場合

「サーバーが停止したら自動的に予備サーバーへ切り替える」という仕組みを作りたい場合は、.htaccessだけでは不十分です。

一般的には、

  • 外部の死活監視
  • ロードバランサー
  • DNSフェイルオーバー
  • CDNやクラウド側のヘルスチェック機能

などを組み合わせて構築します。

つまり、

サーバーを監視
        ↓
異常を検知
        ↓
切り替え処理
        ↓
予備サーバーへ

という仕組みが必要です。

単純な.htaccessのRewriteRuleだけで、CPU使用率やサーバー負荷を監視して自動切り替えするわけではありません。

13 まとめ

レンタルサーバーのIPアドレスを調べる場合は、まず各レンタルサーバーの管理画面を確認するのが確実です。

  • エックスサーバー:サーバーパネルの「サーバー情報」
  • ConoHa WING:「サーバー管理」→「契約情報」→「サーバー情報」
  • さくらのレンタルサーバ:「サーバー情報」
  • ロリポップ!:管理画面の接続情報と、必要に応じてnslookupを利用
  • Cloudflare:DNSで表示されるIPとオリジンサーバーIPを区別する
  • FFFTP:接続ログは補助的な確認方法として利用する

また、hostsファイルでwwwあり・wwwなしの両方を確認する場合は、必要なホスト名をそれぞれ記述します。

サーバー障害時の予備サイトへの切り替えについては、手動の302リダイレクトなら.htaccessで対応できますが、サーバー負荷を検知した自動切り替えには別の監視・フェイルオーバーの仕組みが必要です。

「DNSで表示されるIP」と「実際に確認したいサーバーのIP」を混同しないことが、サーバー移転やDNS設定で失敗しないための重要なポイントです。