Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。
Apache的主要特点:
- 开放源代码
- 跨平台应用
- 支持各种Web编程语言
- 模块化设计
- 运行非常稳定
- 良好的安全性
在同一台Apache服务器中运行多个web站点,其中的每一个站点实际上不会占用着整个服务器,通过虚拟web主机服务可以充分利用服务器的硬件资源,从而降低网站构建以及运行成本。虚拟主机主要类型分为三种:
- 基于IP端口
对每个不用域名的虚拟主机设置单独IP,因此,在服务器中需要设置多个网卡,对于硬件成本和IP成本要求都高,此种方式在实际中不常用,本文暂且略过。 - 基于端口IP
使用TCP不用端口来区分不用的站点内容,需要在用户访问站点时跟上指定端口号才可实现访问。 - 基于主机名
每个服务器主机可以构建多个不用域名服务器,但都使用相同IP地址;此种方式在实际中较为常用。
实验环境:
- RHEL6.5操作系统
- 服务器IP地址:192.168.100.110
- RHEL镜像光盘挂载至/mnt目录下
环境部署
1.检查并安装httpd服务器
rpm -q httpd //检查httpd服务器是否已安装
httpd-2.2.15-29.el6_4.x86_64 //已安装httpd服务器
2.关闭防火墙和增强安全功能
service iptables stop
setenforce 0
建立Apache虚拟目录(用户访问控制)
vim /etc/httpd/conf/httpd.conf //编辑httpd配置文件
Listen 192.168.100.110:80 //更改监听地址和监听端口
#Listen 80 //注释IPV6的监听
ServerName www.yun.com:80 //设置主机名
vim /etc/httpd/conf.d/vdir.conf //在子配置目录下创建虚拟目录配置文件vdir.conf
//以下为写入vdir.conf中的内容
Alias /test "/opt/test/" //设置别名
<Directory "/opt/test/"> //定义虚拟目录
Options Indexes MultiViews FollowSymLinks
AllowOverride None
AuthName "hello" //认证名称
authtype basic //基本认证方式
authuserfile /etc/httpd/user //指定用户认证文件存放位置
#authgroupfile /etc/httpd/group
#require Valid-user //设置用户访问权限
#require user test
#Require group admin
</Directory>
mkdir –p /opt/test //创建虚拟目录站点
echo “this is vdir test” > /opt/test/index.html //新建站点首页
service httpd start //开启httpd服务
用户授权访问:
vim /etc/httpd/conf.d/vdir.conf //编辑服务子配置文件
<Directory "/opt/test/"> //定义虚拟目录
Options Indexes MultiViews FollowSymLinks
AllowOverride None
AuthName "hello" //认证名称
authtype basic //基本认证方式
authuserfile /etc/httpd/user //指定用户认证文件存放位置
#authgroupfile /etc/httpd/group
require Valid-user //设置用户访问权限
#require user test
#Require group admin
</Directory>
htpasswd –c /etc/httpd/user zhangsan //创建授权访问用户zhangsan
service httpd restart //重启httpd服务
再次访问网页时会跳出账号密码验证登录窗口:
相同IP不同端口情况下:
1. 在/etc/httpd/conf.d目录下新建vport.conf(虚拟目录文件)
cd /etc/httpd/conf.d/
vim vport.conf //新建vport.conf配置文件
写入以下内容:
NameVirtualHost 192.168.100.110:80 //虚拟主机IP地址及端口号
<VirtualHost 192.168.100.110:80>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun/ //网页站点目录
ServerName www.yun.com //域名
ErrorLog logs/benet.com-error_log //错误日志
CustomLog logs/benet.com-access_log common //访问日志
</VirtualHost>
NameVirtualHost 192.168.100.110:81 //虚拟主机IP地址及端口号
<VirtualHost 192.168.100.110:81>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/yun01/ //网页站点目录
ServerName www.yun.com //域名
ErrorLog logs/benet.com-error_log //错误日志
CustomLog logs/benet.com-access_log common //访问日志
</VirtualHost>
2. 创建yun、yun01的站点目录,新建各站点首页文件
mkdir /opt/yun /opt/yun01 //创建站点目录
echo ”yun port 80 test” > /opt/yun/index.html //添加yun站点的首页内容
echo ”yun01 port 81 test” > /opt/yun01/index.html //添加yun01站点的首页内容
3. 修改httpd.conf配置文件
vim /etc/httpd/conf/httpd.conf
Listen 192.168.100.110:81 //添加81端口的监听地址
4. 重启httpd服务
service httpd restart
5. 测试
相同IP不同主机情况下:
1. 在/etc/httpd/conf.d目录下新建vhost.conf
cd /etc/httpd/conf.d/
vim vhost.conf //新建vhost.conf配置文件
写入以下内容:
NameVirtualHost 192.168.100.110:80 //虚拟主机名称
<VirtualHost 192.168.100.110:80>
ServerAdmin [email protected] //管理员邮箱
DocumentRoot /opt/benet/ //网站站点目录
ServerName www.benet.com //域名
ErrorLog logs/benet.com-error_log //错误日志
CustomLog logs/benet.com-access_log common //访问日志
</VirtualHost>
mkdir /opt/benet //创建www.benet.com的站点
echo “this is benet” > /opt/benet/index.html //创建首页及添加内容
2. 安装DNS服务器
安装bind软件包:
rpm –ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_x86_64.rpm
编辑主配置文件
vim /etc/named.conf
options {
listen-on port 53 { 192.168.100.110; };
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; };
recursion yes;
编辑区域配置文件
vim /etc/named.rfc1912.zones
zone "yun.com" IN {
type master;
file "yun.com.zone";
allow-update { none; };
};zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};
在/var/named目录下复制模板文件
cd /var/named
cp –p named.localhost yun.com.zone
编辑区域数据配置文件
vim yun.com.zone
cp –p yun.com.zone benet.com.zone //yun和benet区域数据配置文件相同,可直接复制
3.启动(重启)named及httpd服务:
service httpd restart
service named start
4.测试
原文地址:http://blog.51cto.com/13625810/2126218