在日常的網站發布中很多情況下都無法做到一個IP對應一個站點,在IP4的情況下IP的資源是相對有限的。然而作為最流行的Apache自然也考慮到這種情況,那么接下來看看apache怎么實現一個ip配置多個站點。
在httpd.conf中找到 "# Virtual hosts",並添加如下行
ServerName 你的域名
HostNameLookups off
NameVirtualHost 192.168.1.104 <VirtualHost 192.168.1.104> ServerName www.php.com ServerAdmin test@gmail.com DocumentRoot /data/www1/ DirectoryIndex index.php index.html index.htm index.shtml Errorlog /usr/local/apache2/logs/wwwError_log Loglevel warn HostNameLookups off <Directory /data/www1/> AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 192.168.1.104> ServerName bbs.php.com ServerAdmin test@gmail.com DocumentRoot /data/www2/ DirectoryIndex index.php index.html index.htm index.shtml Errorlog /usr/local/apache2/logs/bbsError_log Loglevel warn HostNameLookups off <Directory /data/www2/> AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost>
上述的例子IP都是192.168.1.104,域名分別是www.php.com和bbs.php.com。因而可知apahce是通過ServerName來識別同一個IP下的不同站點的。
在實際應用中你只需要將IP192.168.1.104、域名www.php.com和bbs.php.com分別改成你的IP和域名即可。
很多朋友問為什么輸入網站的ip為什么不能訪問網站,輸入域名倒可以訪問網站?道理也在這里,像這種情況,一個ip對應的幾個站點,是通過ServerName來識別同一個IP下的不同站點的,而輸入ip地址主機自然是不知道你要訪問哪個站點,故無法訪問。而現實中,很多的虛擬主機上綁定的是幾十甚至幾百的網站。