Скажем, у меня есть домен fish.example.com
с записью, указывающей на http-сервер, на котором запущен apache / nginx, и с настройкой vhost для этого домена. Я также создаю CNAME из cow.example.net
к fish.example.com
Какой домен попадает в мой apache / nginx и настраивается ли это поведение с помощью apache / nginx?
Какое бы имя ни вводилось в адресной строке браузера, браузер отправляет его на сервер в виде host
HTTP-заголовок, который ваш сервер проверяет, чтобы правильно обслуживать свои vhosts.
Именно для этого нужны cnames, и ваше предложение по DNS убедительно. Вам нужно будет определить виртуальный хост как для cow.sample.net, так и для fish.example.com, поскольку оба потенциально могут использоваться для доступа к вашему сайту (если только вы не собираетесь, чтобы клиенты подключались только с помощью одного из них).
Это можно сделать в конфигурации виртуальных хостов apache / nginx:
<VirtualHost cow.sample.net>
DocumentRoot "/www/site"
ServerName cow.sample.net
</VirtualHost>
<VirtualHost fish.example.com>
DocumentRoot "/www/site"
ServerName fish.example.com
</VirtualHost>