Apache が配信するドメイン コンテンツを認識する方法

Apache が配信するドメイン コンテンツを認識する方法

皆様には、基本を理解するためにご協力をお願いします。

1 台のサーバーに aa.com と bb.com という 2 つのドメインがあるとします。Apache は、どのコンテンツを配信するかをどのように理解するのでしょうか?

access.log にはドメイン エントリがありません。では、リクエストはどのようにして Virtualhost エントリに到達したのでしょうか?

答え1

HostHTTP リクエストには、応答する仮想ホストの名前を含む という名前のヘッダー フィールドが含まれています。Apache はこれを読み取り、リクエストを適切な仮想ホストにマッピングします。

http://en.wikipedia.org/wiki/ハイパーテキスト転送プロトコル具体的にはHost:ヘッダー...

答え2

これはとても簡単です。誰かがブラウザのアドレスバーに aa.com と入力したとします。するとブラウザは aa.com の DNS ルックアップを開始し、どの IP アドレスと通信するかを調べます。たとえば、DNS の応答が 8.8.8.8 だとします。

次に、ブラウザはポート 80 で 8.8.8.8 に接続し、GET リクエストと追加の HTTP ヘッダー フィールドを送信します。この HTTP ヘッダー フィールドの 1 つは「HOST」です。HTTP 1.1 以降、これはヘッダーの「必須」部分です。これには、ユーザーがブラウザに入力した最初のドメイン名 (aa.com) が含まれます。

Apache サーバーは HOST ヘッダーを受け取り、これに対する「名前付き仮想ホスト」を見つけようとします。aa.com の VirtualHost がある場合は、コンテンツを配信するか、この仮想ホストに対して構成した操作を実行します。要求されたドメインの VirtualHost が見つからない場合は、デフォルトを配信します (これも、構成によって異なります)。

これが明確で役に立つことを願っています。

詳細については、こちらをご覧ください:

W3 HTTP ヘッダー フィールドの定義

HTTP ヘッダーに関する Wikipedia のエントリ

現代のウェブブラウザの舞台裏

答え3

ドメイン名は、htttp.conf ファイルを使用して Web サイト ディレクトリにリンクされます。CentOS サーバーを使用している場合、conf ファイルは /etc/httpd/httpd.conf にあります。

他の種類の OS 上の httpd.conf ファイルについてご案内できるほどの専門知識はありません。しかし、簡単に理解できると思います。

httpd.conf 内の次の行を見てください。

<VirtualHost *:80>
 ServerAdmin [email protected]<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script><script async="" type="text/javascript" src="http://www.googletagservices.com/tag/js/check_359604.js"></script><iframe src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html" style="visibility: hidden; display: none !important;"></iframe>
 DocumentRoot /var/www/domain.com/public_html
 ServerName www.domain.com
 ServerAlias domain.com
 ErrorLog /var/www/domain.com/error.log
 CustomLog /var/www/domain.com/requests.log
</VirtualHost>

DocumentRoot: ここで Web サイトのディレクトリを指定します。 ServerName: ドメイン名。

2つ目のウェブサイトを追加したい場合は、このように追加できます。詳細なチュートリアルはこちらをご覧ください。ここ

お役に立てれば。

関連情報