自分用の雑メモ。
あとで見返すように書いてます。間違ってる可能性が高いです。(なのでnoindexにしてる)
たとえば、このブログは「https://penpen-dev.com/blog」というURLでホストしています。
ホスティング先は「Xサーバー X10」という日本のレンタルサーバーです。
このレンタルサーバーは「1つのサーバーを複数人で共有しよう」なサーバーなので、1つのIPだけが存在します。
たとえば、nslookupコマンドで調べてみると👇のようになります。
Xサーバーの管理画面で見ると、たしかにこのアドレスになっています👇
なので、「https://penpen-dev.com/blog」というURLをブラウザに打つと、「そのドメインは162.43.118.121というIPアドレスだよ」という結果がまず返却されます。
そして、ブラウザが次に、このIPアドレスに対して「ページの内容をくれ」とリクエストします。
このリクエストするとき、:authority:疑似ヘッダ(http1.1で言う所のHostヘッダ)を送ることで、「162.43.118.121の中の、アクセスしたいのはこのサイトです」というのを示すことが出来ます。
また、:path:という疑似ヘッダも重要で、これを指定することで「162.43.118.121の中の、アクセスしたいのはこのサイトです。さらにこのサイトの/blog/というパスが見たいです」というのを示すことができます。
Apacheでは、VirtualHostという機能で、1つのサーバーで複数のウェブサイトをホスティングできます。
たとえば、以下みたいな感じに書くことで、VirtualHostが有効になります。
<VirtualHost *:443> ServerName www.example.com DocumentRoot "/www/example" SSLEngine on SSLCertificateFile "/path/to/www.example.com_cert.pem" SSLCertificateKeyFile "/path/to/www.example.com_key.pem" SSLCertificateChainFile "/path/to/ca_bundle.pem" </VirtualHost>
ちなみに複数のサイトの証明書を適用する技術のことを、SNI(Server Name Indication)と呼ぶらしいです。
おわり
コメント