Назад | Перейти на главную страницу

Псевдонимы в nginx / apache против записи CNAME?

В одном из моих nginx sites-available файл конфигурации, я могу указать псевдоним имени сервера, например:

server_name example.com www.example.com;

Если бы у меня был сервер Apache, я мог бы сделать что-то подобное с ServerName и ServerAlias:

ServerName example.com
ServerAlias www.example.com

Я также указал CNAME запись в моем файле зоны:

www.example.com. 1800 IN CNAME example.com.

я хочу www.example.com и example.com для сервера того же контента. Поскольку у меня есть CNAME запись, все www.example.com будет указано на example.com в любом случае, псевдоним не нужен. Аргумент также можно перевернуть с ног на голову, чтобы сказать CNAME запись не нужна.

Является ли псевдоним на моем веб-сервере (nginx или Apache) и запись CNAME избыточными? Если да, следует ли мне избавиться от одного из них? И если да, то какой?

Без CNAME вам понадобится запись A для www-поддомена, иначе разрешение DNS для www.example.com не будет работать, и запрос не достигнет вашего сервера.

Вам также понадобится ServerAlias, потому что даже при использовании CNAME заголовок хоста в HTTP-запросе не изменится, поэтому он все равно будет www.example.com и вам нужно указать Apache / nginx, какой vhost должен обслуживать этот запрос.

Так что здесь нет ничего лишнего. Единственное преимущество использования CNAME для www.example.com вместо записи A заключается в том, что при изменении вашего IP-адреса вам нужно будет изменить только запись A для example.com . При использовании записей A вам придется изменить их обе.