Apache构建虚拟Web主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache构建虚拟Web主机相关的知识,希望对你有一定的参考价值。

Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。

Apache的主要特点:

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

在同一台Apache服务器中运行多个web站点,其中的每一个站点实际上不会占用着整个服务器,通过虚拟web主机服务可以充分利用服务器的硬件资源,从而降低网站构建以及运行成本。虚拟主机主要类型分为三种:

  1. 基于IP端口
    对每个不用域名的虚拟主机设置单独IP,因此,在服务器中需要设置多个网卡,对于硬件成本和IP成本要求都高,此种方式在实际中不常用,本文暂且略过。
  2. 基于端口IP
    使用TCP不用端口来区分不用的站点内容,需要在用户访问站点时跟上指定端口号才可实现访问。
  3. 基于主机名
    每个服务器主机可以构建多个不用域名服务器,但都使用相同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.测试

技术分享图片
技术分享图片

以上是关于Apache构建虚拟Web主机的主要内容,如果未能解决你的问题,请参考以下文章

实验使用apache构建虚拟主机

Apache构建虚拟web主机

Apache构建web主机

Apache之虚拟web主机的构建

注意 配置过程容易忽视的问题! 构建虚拟web主机 Apache 配置与应用

基于 Apache 构建 web虚拟主机详解