4

I am new to Apache web server. When we configure Apache web server, we have the options of setting name-based virtual host.

Based on my understanding, when a user type in a domain name www.example.com in a web browser, it will connect to a DNS server which will convert the domain name to a (public) IP address. Then, the web browser will connect to the web server using the IP address.

Now, let's say I have a server with a public IP address, a.a.a.a. I have registered 2 domain names, www.example.com and www.example1.com. Both of these 2 domain names are pointing to the same IP address, a.a.a.a. So, when user types in www.example.com or www.example1.com in his web browser, the DNS server will point them to the IP address a.a.a.a.

I have configured name-based virtual host according to the user guide at this web site.

However, what I don't understand is: Since the DNS server already converted domain names to IP address, all users will connect to the web server using IP address a.a.a.a. How Apache knows whether the user is using www.example.com or www.example1.com in their web browser?

4

The http header will contain the host. In your example above, this would be www.example.com or www.example1.com. This host header is read by apache and then used to send the client the correct vhost.

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

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.