4tret 发表于 2014-5-5 08:41:22

CentOS 6.5 Apache搭建虚拟主机

一.虚拟主机简介
虚拟主机,又称虚拟服务器、主机空间或是网页空间,是一种让单一服务器可以运行多个网站或服务的技术。虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。
虚拟主机技术主要应用于HTTP,FTP,EMAIL等多项服务,将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位,对外表现为多个服务器,从而充分利用服务器硬件资源。
二.虚拟主机的实现类型
1.基于主机名(Name-based)
有客户端提供网址,决定其对应的服务,这个方法有效减少IP占用,但必须依赖DNS提供域名解析服务。若DNS部分解析出现故障,则对应此名称的服务也会无法适用。
2.基于IP(IP-based)
在服务器里绑定多个IP,不同的IP来管理多个服务。
3.基于端口(Port-based)
近似于IP地址对应,不过是在同一个IP之下,利用不同的Port端口号来区别不同的服务,藉以快速创建多个虚拟主机。例如:
192.168.0.1:80
192.168.0.1:8080
192.168.0.1:8888
不过这类的应用大多用在私人或实验性质的服务中,原因是用户无法利用默认的端口号(例如Web服务的默认端口号80)取用提供的服务,除非用户知道提供服务的端口号。
三.三种虚拟主机实现的基本配置
实验要求:在一台主机上搭建2个网站服务
      www.hyd.com
      www.my.com
      实现基于主机名的虚拟主机(开启:NameVirtualHost);
      实现基于IP的虚拟主机(多个ip需要把中心主机取消);
      实现基于端口的虚拟主机(需在全局配置中配置listen);
创建实验环境:
实现通过域名访问站点需要DNS的解析,可修改DNS数据库文件记录将2个站点IP都指向本机,
在客户端设置基于/etc/hosts主机名的解析:
%SystemRoot%\system32\drivers\etc\添加
www.hyd.com 172.16.6.1
www.my.com172.16.6.1
创建网站存放目录及测试页
# mkdir -p /data/web/{iyunv,linuxmi}
# echo "<h1>www.hyd.com</h1>" > /data/web/hyd/index.html
# echo "<h1>www.my.com</h1>" > /data/web/my/index.html
剩下的就是配置虚拟主机了。。。,需要注意的事centos6.5自带apache,此处不再配置。


# rpm -q httpd
httpd-2.2.15-29.el6.centos.x86_64
注意,配置虚拟主机由两种方法:直接在httpd.conf里面添加VirutalHost标签对定义即可,或者在conf.d目录下新建文件virtual.conf。本文直接在httpd.conf里面配置。
1.搭建基于主机名虚拟主机
打开web服务的主配置文档:vim /etc/httpd/conf/httpd.conf
开启:NameVirtualHost 172.16.6.1:80


NameVirtualHost 172.16.6.1:80
<VirtualHost 172.16.6.1:80>
    ServerAdmin www.hyd.com
    DocumentRoot /data/web/hyd
    ServerName www.hyd.com
    ErrorLog logs/www.hyd.com-error_log
    CustomLog logs/www.hyd.com-access_log common
</VirtualHost>
<VirtualHost 172.16.6.1:80>
    ServerAdmin www.my.com
    DocumentRoot /data/web/my
    ServerName www.my.com
    ErrorLog logs/www.my.com-error_log
    CustomLog logs/www.my.com-access_log common
</VirtualHost>

#httpd -t   //语法检测
#service httpd restart
浏览器测试
http://www.hyd.com
http://www.my.com
2.搭建基IP的虚拟主机
# ifconfig eth0:0 172.16.6.10         //设置另一个IP   
# vim /etc/httpd/conf/httpd.conf      //修改配置文件


<VirtualHost 172.16.6.1:80>
    DocumentRoot /data/web/hyd
    ServerName 172.16.6.1
    ErrorLog logs/172.16.6.1-error_log
    CustomLog logs/172.16.6.1-access_log common
</VirtualHost>
<VirtualHost 172.16.6.10:80>
    DocumentRoot /data/web/my
    ServerName 172.16.6.10
    ErrorLog logs/172.16.6.10-error_log
    CustomLog logs/172.16.6.10-access_log common
</VirtualHost>
#httpd -t   //语法检测
#service httpd restart
浏览器测试
http://172.16.6.1
http://172.16.6.10
3.搭建基于端口的虚拟主机
# vim /etc/httpd/conf/httpd.conf      //修改配置文件


........
Listen 80
Listen 81      //在全局配置中仍需添加端口
.........


<VirtualHost 172.16.6.1:80>
    DocumentRoot /data/web/hyd
    ErrorLog logs/172.16.6.1:80-error_log
    CustomLog logs/172.16.6.1:81-access_log common
</VirtualHost>
<VirtualHost 172.16.6.1:81>
    DocumentRoot /data/web/my
    ErrorLog logs/172.16.6.1:81-error_log
    CustomLog logs/172.16.6.1:81-access_log common
</VirtualHost>
#httpd -t   //语法检测
#service httpd restart
浏览器测试
http://172.16.6.1:80
http://172.16.6.10:81
四.虚拟主机扩展配置
1.限制部分ip访问某一虚拟主机,如仅允许192.168.0.0/24网络中的客户机访问
2.为某一虚拟主机提供基本认证功能,并为其提供两个虚拟用户webuser1和webuser2,
密码均为redhat,要求允许此两用户在提供密码的情况下访问此站点;

页: [1]
查看完整版本: CentOS 6.5 Apache搭建虚拟主机