用apache在本机配置多个基于ip的虚拟主机

用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.htmlindex.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
命令就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值