Apache实现一个IP配置多个站点
在日常的网站发布中很多情况下都无法做到一个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地址主机自然是不知道你要访问哪个站点,故无法访问。而现实中,很多的虚拟主机上绑定的是几十甚至几百的网站。