![]() |
用apache在本机配置多个基于ip的虚拟主机
己在做网站的时候总会遇到这样一个麻烦:如果同时在做2个或两个以上的网站,但是,默认的apache的配置是只有一个网站,这样的话,切换起来很不方便。其实这个问题很好解决,就是把本机的apache配置成为虚拟服务器。但是,网上大多数教程的是教用 apache如何配置基于域名的虚拟主机的,而在本机调试网站的时候,一般都是用本地ip(127.0.0.1 或 localhost)直接访问,没有用到域名。所以得把apache配置成为基于ip地址的虚拟主机才行。
首先,补充一点理论知识:(如果熟悉网络的话可以略过) 网络课告诉我们,所有以127打头的ip地址都应该指向本机,并不只有127.0.0.1,这点大家可以试试。 这样一来,也就是说本机有足够多的ip地址供你来开设虚拟主机了。 然后,进入正式的配置工作,下面是apache的httpd.conf里相关配置部分: 1、Listen部分,必须直接指定端口,不指定ip地址,配置应写为: Listen 80 2、不用像基于域名的虚拟主机那样写“NameVirtualHost”。 3、虚拟主机配置段: <VirtualHost 127.0.0.1:80> DocumentRoot /path/to/your/first/virtual/host ServerName 127.0.0.1:80 </VirtualHost> <VirtualHost 127.0.0.2:80> DocumentRoot /path/to/your/second/virtual/host ServerName 127.0.0.2:80 </VirtualHost> ... 4、然后相应的配置好各个目录属性,下面是一个目录属性的典型配置: <Directory "/path/to/your/first/virtual/host"> Options Indexes FollowSymLinks Multiviews AllowOverride All Order Allow,Deny Allow from all </Directory> 重启apache2以后,你的虚拟主机就配置好了,以后就可以通过127.0.0.1和127.0.0.2进入不同的站点了。 1.基于相同IP不同Port的虚拟主机 1)vi /etc/httpd/conf/httpd.conf (建议使用nano或gedit等编辑器,下同) 2)将Listen字段改为 Listen 80 Listen 8080 (以上设置表示使用80以及8080端口,好像8888端口有冲突) 3)更改虚拟主机部分为: <VirtualHost 192.168.0.1:80> DocumentRoot /var/www/html/website1 </VirtualHost> <VirtualHost 192.168.0.1:8080> DocumentRoot /var/www/html/website2 </VirtualHost> 4)保存以上设置 5)创建目录以及页面文件: #mkdir –p /var/www/html/website1 #mkdir –p /var/www/html/website2 #cd /var/www/html/website1 #cat >index.html <<EOF >website1 >EOF #cd /var/www/html/website2 #cat >index.html <<EOF >website2 >EOF (注:在/etc/httpd/conf/httpd.conf中有DirectoryIndex index.html index.html.var,表示只读index.html,而不读index.htm,切记) 6)service httpd restart 完成以上设置后,可以通过以下方式访问: 1)打开浏览器 2)输入http://192.168.0.1:80以及http://192.168.0.1:8080 2.基于相同Port不同IP的虚拟主机 1)不同IP地址的配置: #cd /etc/sysconfig/network-scripts #cp ifcfg-eth0 ifcfg-eth0:1 #vi ifcfg-eth0:1 将eth0:1更改为: DEVICE=eth0:1 ONBOOT=YES BOOTPROTO=static IPADDR=192.168.0.2 NETMASK=255.255.255.0 2)service network restart 3)vi /etc/httpd/conf/httpd.conf 4)更改虚拟主机部分为: <VirtualHost 192.168.0.1:80> DocumentRoot /var/www/html/website1 </VirtualHost> <VirtualHost 192.168.0.2:80> DocumentRoot /var/www/html/website2 </VirtualHost> 5)创建目录以及页面文件: #mkdir –p /var/www/html/website1 #mkdir –p /var/www/html/website2 #cd /var/www/html/website1 #cat >index.html <<EOF >website1 >EOF #cd /var/www/html/website2 #cat >index.html <<EOF >website2 >EOF 完成以上设置后,可以通过以下方式访问: 1)打开浏览器 2)输入http://192.168.0.1:80以及http://192.168.0.2:80 3.基于域名的虚拟主机的访问 1)vi /etc/http/conf/httpd.conf 2)更改虚拟主机部分为: NameVirtualHost 192.168.0.1 <VirtualHost www1.example.com> DocumentRoot /var/www/html/website1 ServerName www1.example.com </VirtualHost> <VirtualHost www2.example.com> DocumentRoot /var/www/html/website2 ServerName www2.example.com </VirtualHost> (注:以上设置中NameVirtualHost不可以省略) 3)创建目录以及页面文件: #mkdir –p /var/www/html/website1 #mkdir –p /var/www/html/website2 #cd /var/www/html/website1 #cat >index.html <<EOF >website1 >EOF #cd /var/www/html/website2 #cat >index.html <<EOF >website2 >EOF 4)完成以上设置后,可以通过以下方式访问: 1)打开浏览器 2)输入http://www1.example.com 以及 http://www2.example.com 注意:如果虚拟主机的目录不在“/var/www”下面,则需要关闭SELINUX,方法如下: 把/etc/selinux/config 中的 SELINUX=enforcing 改成 SELINUX=permissive 然后重启。 如果想立即生效,则执行: # setenforce 0 命令就可以了 |
| All times are GMT +8. The time now is 11:07 AM. |
Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.