Как виртуальный хост на основе имен 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 в их веб-браузере?

1 ответ

Решение

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

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

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

Другие вопросы по тегам