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

Как виртуальный хост на основе имени Apache работает с общедоступным IP-адресом?

Я новичок в веб-сервере Apache. Когда мы настраиваем веб-сервер Apache, у нас есть возможность настройки name-based virtual host.

Насколько я понимаю, когда пользователь вводит доменное имя www.example.com в веб-браузере он подключится к DNS-серверу, который преобразует доменное имя в (общедоступный) IP-адрес. Затем веб-браузер подключится к веб-серверу, используя IP-адрес.

Теперь предположим, что у меня есть сервер с общедоступным IP-адресом, a.a.a.a. Я зарегистрировал 2 доменных имени, www.example.com и www.example1.com. Оба этих 2 доменных имени указывают на один и тот же IP-адрес, a.a.a.a. Итак, когда пользователь вводит www.example.com или www.example1.com в его веб-браузере DNS-сервер будет указывать им на IP-адрес a.a.a.a.

Я настроил виртуальный хост на основе имени в соответствии с руководством пользователя на этот сайт.

Однако я не понимаю: поскольку DNS-сервер уже преобразовал доменные имена в IP-адрес, все пользователи будут подключаться к веб-серверу, используя IP-адрес. a.a.a.a. Как Apache узнает, использует ли пользователь www.example.com или www.example1.com в своем браузере?

Заголовок http будет содержать хост. В приведенном выше примере это будет www.example.com или www.example1.com. Этот заголовок хоста считывается apache и затем используется для отправки клиенту правильного виртуального хоста.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23

http://httpd.apache.org/docs/2.2/vhosts/examples.html