
皆様には、基本を理解するためにご協力をお願いします。
1 台のサーバーに aa.com と bb.com という 2 つのドメインがあるとします。Apache は、どのコンテンツを配信するかをどのように理解するのでしょうか?
access.log にはドメイン エントリがありません。では、リクエストはどのようにして Virtualhost エントリに到達したのでしょうか?
答え1
Host
HTTP リクエストには、応答する仮想ホストの名前を含む という名前のヘッダー フィールドが含まれています。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 が見つからない場合は、デフォルトを配信します (これも、構成によって異なります)。
これが明確で役に立つことを願っています。
詳細については、こちらをご覧ください:
答え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つ目のウェブサイトを追加したい場合は、このように追加できます。詳細なチュートリアルはこちらをご覧ください。ここ
お役に立てれば。