edit-icon download-icon

ECS LinuxインスタンスのWebサイトの設定方法とドメイン名のバインド方法

最終更新日: Mar 13, 2018

Nginx サービスにドメイン名をバインドする

YUM がインストールされている Nginx を例にとりましょう:

  1. /etc/nginx/nginx.conf にあるNginxの設定ファイルを編集してください:デフォルトの server {...}を以下の図に従って修正してください:

    nginx

    変更された設定とは:

    1. www.123.comへのアクセスリクエストは、 /home/web1 ディレクトリに転送されます。
    2. www.abc.comへのアクセスリクエストは、 /home/web2 ディレクトリに転送されます。
  2. Nginx サービスを再起動します。

Tomcat サービスにドメイン名をバインドする

  1. TOMCAT_HOME/conf/server.xml にある Tomcat 設定ファイルを編集します。 TOMCAT_HOME **は Tomcat のインストールディレクトリです。

    default_web

    default_web

  2. 前の2つの図の内容を次の図に従って変更します。

    web

    変更された設定とは:

    1. www.abc.com へのアクセス要求は、デフォルトで /data/wwwroot/default ディレクトリに送られます。
    2. サーバー IP アドレス 120.76.210.250 へのアクセス要求は、自動的に /data/wwwroot/web ディレクトリに転送されます。
  3. Tomcat サーバーを再起動します。

Apache サービスにドメイン名をバインドする

ワンクリックインストーラで設定された Apache 環境を例にとりましょう:

  1. cd /alidata/server/httpd/conf/vhosts/を実行してサイト構成ファイルのディレクトリに移動します。

  2. vi aa.confを実行して新しい設定ファイルを作成します。

  3. i キーを押します。次のコンテンツをコピーして貼り付けます。

    1. Order allow,deny
    2. Deny from all
    3. DocumentRoot /alidata/www/test
    4. ServerName www.test.com
    5. ServerAlias test.com
    6. ErrorLog "/alidata/log/httpd/test-error.log"
    7. CustomLog "/alidata/log/httpd/test.log"

    :ウェブサイトに属するログ情報を区別するために、ログ名を変更してください。

    :ターゲットサーバー名(例:www.test.com)で編集します。

  4. Apacheを再起動して設定をテストするには、 /alidata/server/httpd/bin/apachectlを実行してください。

複数のドメイン名間を移動するための Apache サービスの設定

たとえば、プログラムディレクトリは /var/www/html です。ウェブサイトのディレクトリ構造は次のとおりです。

QQscreenshot20150526204051.png

  1. Apache ウェブホスティング機能を有効にします。
  2. 対応する Web Hosting をディレクトリに設定します。Apache のコア設定の内容は次のとおりです。

    QQscreenshot20150526204100.png

    QQscreenshot20150526204124.png

結果は次のとおりです。

  • a.example.comにアクセスすると、/var/www/html/a ディレクトリに移動します。
  • b.example.comにアクセスすると、/var/www/html/b ディレクトリに移動します。
  • c.example.comにアクセスすると、/var/www/html/c ディレクトリに移動します。

Apache サービスの第 2 レベルのドメイン名を設定する

  1. たとえば、alibabacloud.com のようなワイルドカードドメイン解決を使用してトップレベルドメインを準備します。

  2. httpd.conf の mod_rewrite モジュールを有効にします。

  3. httpd.conf の最後に次の内容を追加してください:

    1. RewriteEngine on
    2. RewriteMap lowercase int:tolower
    3. RewriteMap vhost txt:/usr/local/etc/apache/vhost.map # Apache locates at **/usr/local/etc/apache**, you can change it if needed.
    4. RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
    5. RewriteCond ${vhost:%1} ^(/.*)$
    6. RewriteRule ^/(.*)$ %1/$1
  4. パスのディレクトリの下に vhost.map ファイルを作成します:vhost.map、 “domain name + space + bsolute path”の形式に従います。

    1. www.alibabacloud.com /usr/local/www/data-dist/alibabacloud
    2. bbs.alibabacloud.com /usr/local/www/data-dist/alibabacloudbbs
    3. anyname.alibabacloud.com /usr/local/www/data-dist/anyname

    :上記の値は、すべて「ドメイン名+スペース+絶対パス」の形式です。

  5. ウェブサイトのルートディレクトリ /usr/local/www/data-dist の下に alibabacloud、bbs、任意の名前、またはその他のディレクトリを作成します。

ブラウザで www.alibabacloud.com にアクセスすると、実際には /usr/local/www/data-dist/alibabacloud ディレクトリにあるファイルにアクセスします。bbs.alibabacloud.com へのアクセスは、実際には /usr/local/www/data-dist/alibabacloudbbs ディレクトリにあるファイルにアクセスします。指示に基づいて他の多くのディレクトリを作成できます。

さらに、 vhost.map をいつでも変更して、Apache を再起動しなくても、第 2 レベルドメイン名とそれが指す実際のパスを追加、削除、または変更することができます。

権限のないドメイン名が Apache によってECS上の Web サイトにアクセスすることを禁止する

症状:お使いの ECS ウェブサイトが悪意を持ってリダイレクトされる。たとえば、ECS の IP アドレスは123.123.123.123 で、通常のサービスのドメイン名は www.abc.com です。しかし、悪意のあるユーザーが www.fake.com をあなたのウェブサイトを標的にし、123.123.123.123 を訪問させます。その結果、本来ウェブサイトに属していない www.fake.com ドメイン名で訪問すると、あなたのウェブサイトのコンテンツが表示されてしまいます。

シナリオ:Apache Web Hosting を介してこの問題を解決してください。

Apacheのバージョン ウェブサイト
2.2.15 http://t1.huigher.cn/
http://p1.huigher.cn/

解決策

:Apache の実際の設定ファイルのパスは異なる場合があります。操作の前に確認してください。

  1. /etc/httpd/conf/httpd.conf の Apache 設定ファイルをデフォルトで CentOS システムで開きます。
  2. 設定ファイルを編集します。

    1. ホスト名に基づいて Web Hosting 機能が有効になったことを Apache に通知するために NameVirtualHost *:80を追加してください:

    2. 次のコードを追加します。この手順では、クライアントが運んでいるホストヘッダーが構成しようとしている Web サイトドメイン内にない場合、403 エラーページに移動し、ドメイン名が無効であることをユーザーに通知します。

    DocumentRootは、エラープロンプトページを格納するディレクトリを参照します。単純な HTML ページを配置して、無効なドメイン名をユーザーに知らせることができます。

    1. <ViretualHost *:80>
    2. DocumentRoot /var/www/html/error/
    3. ServerName *
    4. ErrorLog logs/dummy-host.example.com-error_log
    5. CustomeLog logs/dummy-host.example.com-access_log common
    6. </ViretualHost>
  3. 有効な Web サイトのホストヘッダーを Apache に通知する次のコードを追加します。コードブロックの内容は、必要に応じて変更することができます。このインスタンスには、 p1.huigher.cn t1.huigher.cn の 2 つの Web サイトが追加されています。

    1. <VirtualHost *:80>
    2. ServerAdmin p1@huigher.cn
    3. DocumentRoot /var/www/html/another/
    4. ServerName p1.huigher.cn
    5. ErrorLog logs/p1.huigher.cn-error_loh
    6. CustomLog logs/p1.huigher.cn-access_log common
    7. </VirtualHost>
    8. <VirtualHost *:80>
    9. ServerAdmin t1@huigher.cn
    10. DocumentRoot /var/www/html/
    11. ServerName t1.huigher.cn
    12. ErrorLog logs/t1.huigher.cn-error_loh
    13. CustomLog logs/t1.huigher.cn-access_log common
    14. </VirtualHost>
  4. Apache を再起動します。

  5. 他のドメイン名からのアクセスに対して 403 エラーを返す場合は、手順2 のコードを次のコードに従って変更します。

    1. <VirtualHost *:80>
    2. DucumentRoot /var/www/html/error/
    3. ServerName *
    4. <Location>
    5. Order Allow, Deny
    6. Deny from all
    7. </Location>
    8. ErrorLog logs/dummy-host.example.com-error_log
    9. CustomLog logs/dummy-host.example.com-access_log commom
    10. </VirtualHost>
  6. Apache を再起動すると、他のドメイン名からの Web サイトへのアクセスに 403 エラーが発生します。

問題が解決しない場合は、チケットを起票の上「サポートセンター」にお問い合わせください。