- Nginxサービスにドメイン名をバインドする
- Tomcatサービスにドメイン名をバインドする
- ドメイン名をApacheサービスにバインドする
- 複数のドメイン名間のナビゲーションのためにApacheサービスを設定する
- Apacheサービスの第2レベルドメイン名を設定する
- ApacheによってECS上のWebサイトにアクセスするための不正なドメイン名の禁止
Nginx サービスにドメイン名をバインドする
YUM がインストールされている Nginx を例にとりましょう:
/etc/nginx/nginx.conf にあるNginxの設定ファイルを編集してください:デフォルトの
server {...}
を以下の図に従って修正してください:変更された設定とは:
- www.123.comへのアクセスリクエストは、 /home/web1 ディレクトリに転送されます。
- www.abc.comへのアクセスリクエストは、 /home/web2 ディレクトリに転送されます。
Nginx サービスを再起動します。
Tomcat サービスにドメイン名をバインドする
TOMCAT_HOME/conf/server.xml にある Tomcat 設定ファイルを編集します。 TOMCAT_HOME **は Tomcat のインストールディレクトリです。
前の2つの図の内容を次の図に従って変更します。
変更された設定とは:
- www.abc.com へのアクセス要求は、デフォルトで /data/wwwroot/default ディレクトリに送られます。
- サーバー IP アドレス 120.76.210.250 へのアクセス要求は、自動的に /data/wwwroot/web ディレクトリに転送されます。
Tomcat サーバーを再起動します。
Apache サービスにドメイン名をバインドする
ワンクリックインストーラで設定された Apache 環境を例にとりましょう:
cd /alidata/server/httpd/conf/vhosts/
を実行してサイト構成ファイルのディレクトリに移動します。vi aa.conf
を実行して新しい設定ファイルを作成します。i キーを押します。次のコンテンツをコピーして貼り付けます。
Order allow,deny
Deny from all
DocumentRoot /alidata/www/test
ServerName www.test.com
ServerAlias test.com
ErrorLog "/alidata/log/httpd/test-error.log"
CustomLog "/alidata/log/httpd/test.log"
注:ウェブサイトに属するログ情報を区別するために、ログ名を変更してください。
注:ターゲットサーバー名(例:www.test.com)で編集します。
Apacheを再起動して設定をテストするには、
/alidata/server/httpd/bin/apachectl
を実行してください。
複数のドメイン名間を移動するための Apache サービスの設定
たとえば、プログラムディレクトリは /var/www/html です。ウェブサイトのディレクトリ構造は次のとおりです。
- Apache ウェブホスティング機能を有効にします。
対応する Web Hosting をディレクトリに設定します。Apache のコア設定の内容は次のとおりです。
結果は次のとおりです。
- a.example.comにアクセスすると、/var/www/html/a ディレクトリに移動します。
- b.example.comにアクセスすると、/var/www/html/b ディレクトリに移動します。
- c.example.comにアクセスすると、/var/www/html/c ディレクトリに移動します。
Apache サービスの第 2 レベルのドメイン名を設定する
たとえば、alibabacloud.com のようなワイルドカードドメイン解決を使用してトップレベルドメインを準備します。
httpd.conf の mod_rewrite モジュールを有効にします。
httpd.conf の最後に次の内容を追加してください:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map # Apache locates at **/usr/local/etc/apache**, you can change it if needed.
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
パスのディレクトリの下に vhost.map ファイルを作成します:vhost.map、 “domain name + space + bsolute path”の形式に従います。
www.alibabacloud.com /usr/local/www/data-dist/alibabacloud
bbs.alibabacloud.com /usr/local/www/data-dist/alibabacloudbbs
anyname.alibabacloud.com /usr/local/www/data-dist/anyname
注:上記の値は、すべて「ドメイン名+スペース+絶対パス」の形式です。
ウェブサイトのルートディレクトリ /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 の実際の設定ファイルのパスは異なる場合があります。操作の前に確認してください。
- /etc/httpd/conf/httpd.conf の Apache 設定ファイルをデフォルトで CentOS システムで開きます。
設定ファイルを編集します。
ホスト名に基づいて Web Hosting 機能が有効になったことを Apache に通知するために
NameVirtualHost *:80
を追加してください:次のコードを追加します。この手順では、クライアントが運んでいるホストヘッダーが構成しようとしている Web サイトドメイン内にない場合、403 エラーページに移動し、ドメイン名が無効であることをユーザーに通知します。
注:
DocumentRoot
は、エラープロンプトページを格納するディレクトリを参照します。単純な HTML ページを配置して、無効なドメイン名をユーザーに知らせることができます。<ViretualHost *:80>
DocumentRoot /var/www/html/error/
ServerName *
ErrorLog logs/dummy-host.example.com-error_log
CustomeLog logs/dummy-host.example.com-access_log common
</ViretualHost>
有効な Web サイトのホストヘッダーを Apache に通知する次のコードを追加します。コードブロックの内容は、必要に応じて変更することができます。このインスタンスには、 p1.huigher.cn と t1.huigher.cn の 2 つの Web サイトが追加されています。
<VirtualHost *:80>
ServerAdmin p1@huigher.cn
DocumentRoot /var/www/html/another/
ServerName p1.huigher.cn
ErrorLog logs/p1.huigher.cn-error_loh
CustomLog logs/p1.huigher.cn-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin t1@huigher.cn
DocumentRoot /var/www/html/
ServerName t1.huigher.cn
ErrorLog logs/t1.huigher.cn-error_loh
CustomLog logs/t1.huigher.cn-access_log common
</VirtualHost>
Apache を再起動します。
他のドメイン名からのアクセスに対して 403 エラーを返す場合は、手順2 のコードを次のコードに従って変更します。
<VirtualHost *:80>
DucumentRoot /var/www/html/error/
ServerName *
<Location>
Order Allow, Deny
Deny from all
</Location>
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log commom
</VirtualHost>
Apache を再起動すると、他のドメイン名からの Web サイトへのアクセスに 403 エラーが発生します。
問題が解決しない場合は、チケットを起票の上「サポートセンター」にお問い合わせください。