HTTP/1.1ではクライアントが「自分が何という名前のホストにリクエストをかけたか(Hostヘッダ)」を表明するのが必須になっているので、ApacheもNGINXも「どの名前でアクセスされたか」でレスポンスを切り替えることができる。
典型的にはドメインごとにドキュメントルートを変えるとか。
@i_sparkling さらにHTTPSをつなぐ時にクライアントからエンドポイントにServer Name Indication (SNI)を渡すことでドメインごとにTLS証明書を変えることができるようになりましたねい :)