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

как настроить cname на сервере?

У меня есть домен foo.this.com. Я хочу, чтобы он отображался на bar.that.com, поэтому я создал cname в интерфейсе своего реестра. Однако, когда я пытаюсь зайти на foo.this.com, он показывает 404, указывающее на IP-адрес bar.that.com.

Итак, мой вопрос: что мне нужно настроить на моем сервере (на котором размещена веб-страница bar.that.com), чтобы распознавать foo.this.com?

заранее спасибо.

То, что вы хотите сделать, подпадает под термин Виртуальный хостинг на основе имени

Технически происходит то, что веб-браузер разрешает bar.that.com на IP-адрес (например, 1.2.3.4). Затем он отправляет HTTP-запрос на 1.2.3.4. Хост обычно не знает об имени, которое использовалось для его адресации.

Однако специальная функция HTTP 1.1 позволяет браузеру вставлять имя хоста в заголовок HTTP. Типичный HTTP-заголовок выглядит так:

GET / HTTP/1.1
Host: bar.that.com

Затем веб-сервер принимает решение в соответствии с содержанием Host: заголовок, какие страницы доставить. Конечно, вы должны сказать ему, как решать в его конфигурации. Для Apache см. Вот, но на любом современном веб-сервере будет нечто подобное.

Виртуальный хостинг на основе имен широко используется, каждый раз, когда вы слышите термин «виртуальный хостинг», думайте о виртуальном хостинге на основе имен. HTTP 1.1 достаточно длинный, чтобы его поддерживали все используемые браузеры. Только очень-очень старые браузеры, такие как NCSA Mosaic, не поддерживали его.

Это зависит от того, какой демон http вы используете.

Если вы используете Apache HTTPD с виртуальный хост записи, вам, скорее всего, потребуется добавить директиву ServerAlias ​​в запись VirtualHost для вашего сайта.

<VirtualHost *:80>
    ServerName bar.that.com
    ServerAlias foo.this.com
    DocumentRoot /home/that.com
    ... snip ... 
</VirtualHost>

Если вы используете IIS, вам нужно добавить заголовки хоста на веб-сайт bar.that.com для foo.this.com.

Для nginx, если вы хотите, чтобы директива обрабатывала более одного домена / поддомена, вы можете поместить их все в директиву server_name. Например,

server {
    listen 80;
    server_name foo.bar.com baz.foo.com bar.foo.com *.foo.com;
    [.......]
}