st0627 发表于 2018-11-22 13:24:55

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/{linuxidc,linuxmi}
  # echo "www.hyd.com" > /data/web/hyd/index.html
  # echo "www.my.com" > /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

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


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
  #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      //修改配置文件

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


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
  #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      //在全局配置中仍需添加端口
.........
DocumentRoot /data/web/hyd
ErrorLog logs/172.16.6.1:80-error_log
CustomLog logs/172.16.6.1:81-access_log common


DocumentRoot /data/web/my
ErrorLog logs/172.16.6.1:81-error_log
CustomLog logs/172.16.6.1:81-access_log common
  #httpd -t   //语法检测
#service httpd restart
  浏览器测试
  http://172.16.6.1:80

  http://172.16.6.10:81

  四.虚拟主机扩展配置
  1.限制部分ip访问某一虚拟主机,如仅允许192.168.0.0/24网络中的客户机访问

  分别使用两台不同IP进行对比测试。第一台是172.16.6.3,第二台是172.16.6.2


DocumentRoot /data/web/hyd
ErrorLog logs/172.16.6.1:80-error_log
CustomLog logs/172.16.6.1:81-access_log common

Options Indexes
AllowOverride None
Order allow,deny
Allow from 172.16.6.2/24

  
#httpd -t   
#service httpd restart
  首先用一普通IP查看http://172.16.6.1,无法查看。



  用ip为172.16.6.2查看。

  2.为某一虚拟主机提供基本认证功能,并为其提供虚拟用户webuser1 密码均redhat,要求允许此用户在提供密码的情况下访问此站点;

DocumentRoot /data/web/my
ErrorLog logs/172.16.6.1:81-error_log
CustomLog logs/172.16.6.1:81-access_log common

Options Indexes
AllowOverride AuthConfig
AuthName "AuthConfig.."
AuthType basic
AuthUserFile /etc/httpd/.htpasswd
require user webuser1
Order allow,deny
Allow from all

#htpasswd -cm /etc/httpd/.htpasswd webuser1
New password:
Re-type new password:
Adding password for user webuser1  #httpd -t   //语法检测
#service httpd restart
  浏览器测试
  http://172.16.6.1:81



  

  




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