Apache介绍

Apache HTTP Server是一款开源的网站服务软件,在Web服务器领域中长期保持着超过半数的份额,Apache服务器可以运行在Linux、UNIX、Windows等多数操作系统平台中。

Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求,其主要特点包括以下几个方面:

  • 开放源代码
  • 跨平台应用
  • 支持各种Web编程语言
  • 模块化设计
  • 运行非常稳定
  • 良好的安全性

构建虚拟Web主机

在同一台Apache服务器中运行多个Web站点,其中的每一个站点实际上并不独立占用整个服务器,通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

Apache支持的虚拟主机类型为以下三种:

1. 基于IP地址

需要为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛;

2. 基于IP端口

使用不同的TCP端口号来区分不同的站点内容,但是用户在浏览不同的虚拟站点时需要同时指定端口号才能够访问;

3. 基于主机名【常用】

每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的;

实验环境

  • rhel6.5操作系统
  • 服务器IP地址:192.168.100.5
  • rhel6.5的镜像光盘挂载至/mnt/cdrom/

实验内容

  1. 虚拟目录(用户授权限制)
  2. 基于IP地址
  3. 基于IP端口
  4. 基于主机名【常用】

部署服务

安装Apache服务器(httpd)

1.检查并安装httpd服务

[root@localhost ~]# rpm -q httpd //检查是否已安装httpd
httpd-2.2.15-29.el6_4.x86_64
[root@localhost ~]# rpm -ivh /mnt/cdrom/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm

2.关闭安全设置和防火墙

setenforce 0
service iptables stop

一. 虚拟目录(用户授权限制)

1. 编辑httpd.conf配置文件

vim /etc/httpd/conf/httpd.conf

ServerName www.yum01.com:80 //设置主机名
Listen 192.168.100.5:80 //设置监听IP地址
Include conf.d/*.conf //开启加载conf.d目录下以.conf为后缀的配置文件

2. 在/etc/httpd/conf.d/目录下新建vdir.conf(虚拟目录文件)

cd /etc/httpd/conf.d/
vim vdir.conf                       //新建vdir.conf配置文件

//以下为虚拟目录定义配置文件

Alias /bbs "/opt/bbs/" //设置别名

<Directory "/opt/bbs/"> //定义虚拟目录
Options Indexes MultiViews FollowSymLinks
AllowOverride None
authname "Auth Directory" //认证领域的名称
authtype basic //基本认证方式
authuserfile /etc/httpd/user //基本认证用户账户、密码的认证文件路径
require Valid-user //授权用户可以进行访问
</Directory>

3.创建/opt/bbs目录,并新建bbs站点首页

mkdir /opt/bbs
echo "<h1>This is bbs web.</h1>" > /opt/bbs/index.html

4. 创建用户认证数据文件

htpasswd -c /etc/httpd/conf.d/user zhangsan

Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

5. 重启httpd服务

service httpd restart

测试

服务器ip信息:
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

客户机ping服务器测试:
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

访问虚拟目录站点:
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

二. 基于IP地址

待续...

三. 基于端口

1. 在/etc/httpd/conf.d/目录下新建vport.conf(虚拟目录文件)

cd /etc/httpd/conf.d/

vim vport.conf                       //新建vport.conf配置文件

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin admin@yun01.com //管理员邮箱
DocumentRoot /opt/yun01/ //网站站点目录
ServerName www.yun01.com //域名
ErrorLog logs/yun01.com-error_log //错误日志
CustomLog logs/yun01.com-access_log common //访问日志
</VirtualHost>

NameVirtualHost 192.168.100.5:81 //虚拟主机名称

<VirtualHost 192.168.100.5:81>
ServerAdmin admin@yun02.com //管理员邮箱
DocumentRoot /opt/yun02/ //网站站点目录
ServerName www.yun02.com //域名
ErrorLog logs/yun02.com-error_log //错误日志
CustomLog logs/yun02.com-access_log common //访问日志
</VirtualHost>

2.创建/opt/yun01、/opt/yun02站点目录,并新建各站点首页文件(index.html)

mkdir /opt/yun01 /opt/yun02 //创建站点目录
echo "<h1>this is yun01.com web.</h1>" > /opt/yun01/index.html //站点yun01添加index.html文件
echo "<h1>this is yun02.com web.</h1>" > /opt/yun02/index.html //站点yun02添加index.html文件

3. 修改httpd.conf配置文件

vim /etc/httpd/conf/httpd.conf

Listen 192.168.100.5:81 //添加81端口的监听地址

4. 重启httpd服务

service httpd restart

测试

访问192.168.100.5:80
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)
访问192.168.100.5:81
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

四. 基于主机名【常用】

1. 在/etc/httpd/conf.d/目录下新建vhost.conf(虚拟目录文件)

cd /etc/httpd/conf.d/
vim vhost.conf                       //新建vhost.conf配置文件

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin admin@yun03.com //管理员邮箱
DocumentRoot /opt/yun03/ //网站站点目录
ServerName www.yun03.com //域名
ErrorLog logs/yun03.com-error_log //错误日志
CustomLog logs/yun03.com-access_log common //访问日志
</VirtualHost>

NameVirtualHost 192.168.100.5:80 //虚拟主机名称

<VirtualHost 192.168.100.5:80>
ServerAdmin admin@yun04.com //管理员邮箱
DocumentRoot /opt/yun04/ //网站站点目录
ServerName www.yun04.com //域名
ErrorLog logs/yun04.com-error_log //错误日志
CustomLog logs/yun04.com-access_log common //访问日志
</VirtualHost>

2.创建/opt/yun03、/opt/yun04站点目录,并新建各站点首页文件(index.html)

mkdir /opt/yun03 /opt/yun04 //创建站点目录
echo "<h1>this is yun03.com web.</h1>" > /opt/yun03/index.html //站点yun03添加index.html文件
echo "<h1>this is yun04.com web.</h1>" > /opt/yun04/index.html //站点yun04添加index.html文件


3. 安装DNS服务器

3.1 安装bind软件包

rpm -ivh /mnt/cdrom/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm

3.2 编辑主配置文件

 vim /etc/named.conf

options {
listen-on port 53 { 192.168.100.5; }; //修改指定监听IP
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; //允许any(所有人)访问
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/ Path to ISC DLV key /
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

3.3 编辑区域配置文件

vim /etc/named.rfc1912.zones

zone "yun03.com" IN {
type master;
file "yun03.com.zone";
};

zone "yun04.com" IN {
type master;
file "yun04.com.zone";
};

3.4 切换到/var/named目录下

cd /var/named

3.5 复制模板文件

cp -p named.localhost yun03.com.zone

3.6 编辑区域数据配置文件

vim yun03.com.zone

Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

由于yun04.com和yun03.com解析文件都一样,这里直接复制yun03.com.zone文件

cp -p yun03.com.zone yun04.com.zone

3.7 加入named服务并重启该服务

chkconfig named on
service named restart //重启named服务
service httpd restart //重启httpd服务

测试

访问www.yun03.com
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)

访问www.yun04.com
Apache搭建Web主机(分别基于IP地址、端口、主机名创建多Web站点)