Apache搭建web虚拟主机

在同一台Apache服务器中运行多个web站点,其中的每一个站点实际上不会占用着整个服务器,通过虚拟web主机服务可以充分利用服务器的硬件资源,从而降低网站构建以及运行成本。虚拟主机主要类型分为三种:
1、基于IP端口
对每个不同域名的虚拟主机设置单独IP,因此,在服务器中需要设置多个网卡,对于硬件成本和IP成本要求都高,此种方式在实际中不常用,本文暂且略过;
2、基于端口IP
使用TCP不同端口来区分不同的站点内容,需要在用户访问站点时跟上指定端口号才可实现访问;
3、基于主机名
每个服务器主机可以构建多个不同域名服务器,但都使用相同IP地址;此种方式在实际中较为常用!

当网页分类内容较多,对于后台运维数据处理与更新压力较大,因此需要建立分类管理的目录,方便管理,称为虚拟目录;

实验描述:

  • 实验环境Redhat6.5版本
  • 服务器IP地址:192.168.100.107
  • Redhat镜像挂载至/mnt下
  • 本实验使用Apache2.2版本

rpm -q httpd //查看Apache版本

环境部署

rpm -q httpd //检查是否安装Apache
service iptables stop //关闭防火墙
setenforce 0 //关闭增强安全×××

建立Apache虚拟目录(用户访问控制)

1、虚拟目录访问

rpm -ivh /mnt/Packages/httpd-2.2.15-29.el6_4.x86_64.rpm // 安装Apache2.2
vim /etc/httpd/conf/httpd.conf //编辑主配置文件

Listen 192.168.100.107:80  //更改监听地址和监听端口
#Listen 80   //注释IPV6的监听
...
ServerName www.yun.com:80  //打开主机域名

vim /etc/httpd/conf.d/vdir.conf
//在子配置文件目录下创建虚拟目录配置文件 vdir.conf

在vdir.conf中写入以下内容:

Alias /test "/opt/test/"   //指定虚拟目录名称为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 //创建虚拟目录站点
vim /opt/test/index.html //创建虚拟目录首页
service httpd start //开启httpd服务

2、用户授权访问

vim /etc/httpd/conf.d/vdir.conf //编辑服务子配置文件

Alias /test "/opt/test/"   //指定虚拟目录名称为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>

htpasswd -c /etc/httpd/user zhangsan //创建授权访问用户
service httpd restart //重启httpd服务

当再一次访问网页时变成了需要授权的用户才可访问:

相同IP不同端口

1、配置DNS

可参见:DNS域名解析服务配置

rpm -ivh /mnt/Packages/bind-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm //首先安装DNS域名解析服务
vim /etc/named.conf //配置域名解析主配置文件

options {
        listen-on port 53 { 192.168.100.107; }; //监听端口主机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; };   //允许任意网段主机都可解析
        recursion yes;

vim /etc/named.rfc1912.zones //编辑区域配置文件

zone "yun.com" IN {
        type master;
        file "yun.com.zone";
        allow-update { none; };
};

cd /var/named //切换到区域数据配置目录下
cp -p named.localhost yun.com.zone //复制区域数据配置文件模板
vim yun.com.zone //配置区域数据配置文件

$TTL 1D
@       IN SOA  @ admin. (     //修改管理员邮箱
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.100.107   //设置解析地址

service named start //开启DNS服务

2、不同端口不同内容

vim /etc/httpd/vhost.conf //创建虚拟主机端口配置文件

写入以下内容:

NameVirtualHost 192.168.100.107:80   //设置主机IP及端口号
<VirtualHost 192.168.100.107:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/yun/  //设置80端口网页站点
   ServerName www.yun.com  //解析域名
   ErrorLog logs/yun.com-error_log  //错误日志存放位置
   CustomLog logs/yun.com-access_log common  //访问日志存放位置
</VirtualHost>

NameVirtualHost 192.168.100.107:250
<VirtualHost 192.168.100.107:250>
   ServerAdmin [email protected]
   DocumentRoot /opt/yun01/  //设置80端口网页站点
   ServerName www.yun.com   //解析域名
   ErrorLog logs/yun01.com-error_log  //错误日志存放位置
   CustomLog logs/yun01.com-access_log common  //访问日志存放位置
</VirtualHost>

mkdir -p /opt/yun //创建80端口站点
echo "yun port 80 test web" > /opt/yun/index.html // 创建 www.yun.com:80的首页内容

mkdir -p /opt/yun01 //创建250端口站点
echo "yun port 250 test web" > /opt/yun01/index.html // 创建 www.yun.com:250的首页内容

vim /etc/httpd/conf/httpd.conf //编辑httpd服务主配置文件

Listen 192.168.100.107:80   //原有监听端口
Listen 192.168.100.107:250  //添加监听端口

service httpd restart //重启httpd服务
service named restart //重启DNS服务

当访问相同IP域名不同端口时出现不同内容:


相同IP不同主机

1、配置DNS解析服务

vim /etc/named.rfc1912.zones //编辑区域配置文件

zone "yun.com" IN {
        type master;
        file "yun.com.zone";
        allow-update { none; };
};
zone "abc.com" IN {         //添加新的解析域名
        type master;
        file "abc.com.zone";
        allow-update { none; };
};      

cd /var/named
cp -p yun.com.zone abc.com.zone //复制区域数据配置文件模板
vim abc.com.zone

$TTL 1D
@       IN SOA  @ admin. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.100.107

2、不同主机

vim /etc/httpd/conf.d/vhost.conf

加入以下内容:

<VirtualHost 192.168.100.107:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/abc/
   ServerName www.abc.com
   ErrorLog logs/abc.com-error_log
   CustomLog logs/abc.com-access_log common
</VirtualHost>

mkdir -p /opt/abc //创建 www.abc.com的站点
echo "this is abc" > /opt/abc/index.html //创建内容

service httpd restart //重启httpd服务
service named restart //重启DNS服务


原文地址:http://blog.51cto.com/13659253/2125742

时间: 2024-10-10 06:25:00

Apache搭建web虚拟主机的相关文章

linux 下apache搭建和虚拟主机的配置

apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一. Linux 下apache服务器的搭建 安装并更新apache yum install httpd 启动服务 默认情况下 apache在/var/www/html存放web页面 在该目录下新建一个index.html网页 编辑html文件 此时在客户机浏览器输入服务器地址,简单的搭建完成!

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

虚拟 web 主机指的是在同一台服务器中运行多个 web 站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为"虚拟" web主机.通过虚拟 web 主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本.使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑起大量的 web 站点.httpd 支持的虚拟主机类型包括以下三种:基于域名:相同IP .相同端口 .不同域名基于IP地址:不同IP.相同端口基于端口:相同IP.不同端

Apache搭建Web主机(虚拟目录、分别基于IP地址、端口、主机名)

Apache介绍 Apache HTTP Server是一款开源的网站服务软件,在Web服务器领域中长期保持着超过半数的份额,Apache服务器可以运行在Linux.UNIX.Windows等多数操作系统平台中. Apache服务器在功能.性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求,其主要特点包括以下几个方面: 开放源代码 跨平台应用 支持各种Web编程语言 模块化设计 运行非常稳定 良好的安全性 构建虚拟Web主机 在同一台Apache服务器中运行多个We

Linux下使用Apache搭建Web网站服务器

Linux下使用Apache搭建Web网站服务器 实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 实战: 例1:为公司内网搭建一个web服务器 例2:取消apache默认欢迎页: 例3:使用rpm搭建lamp 环境 例4, 使用别名,引用网站根目录以外的路径. 例6:打开软链接功能. 通过软件链接直接引用网站根目录以外的内容 例5,当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表 例7:通过用户认证的方式,

使用Apache搭建Web网站服务器

  使用Apache搭建Web网站服务器 一:实验目标 apache服务器常见概念 apache服务器安装及相关配置文件 例1:为公司内网搭建一个web服务器 例2:使用rpm搭建lamp 环境 例3:修改网根目录及对应参数,设置访问权限 例4,:使用别名,引用网站根目录以外的路径. 例5:打开软链接功能. 通过软件链接直接引用网站根目录以外的内容 例6:当一个目录下没有默认首页时,访问http://192.168.1.63/phpmyadmin/禁止显示目录列表 例7:通过用户认证的方式,对网

apache 如何添加虚拟主机?

apache添加虚拟主机很简单,修改配置文件:httpd.conf文件 一.分别去掉下面两行文字前面的#号. #LoadModule vhost_alias_module modules/mod_vhost_alias.so 去掉#意思是启用apache的虚拟主机功能. #Include conf/extra/httpd-vhosts.conf 去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置 二.打开该文件,看到以下类似内容.虚拟主机的配置

基于apache双向ssl虚拟主机服务配置

因为公司需要最近一直研究apache双向认证的问题,公司只有一台服务器,这台服务器上部署着wiki知识库,owncloud私有云,phpmyadmin,zendaopms.现在想实现owncloud需要证书认证的方式才能访问,其他三个可以通过http访问.想要实现这样的环境需要用到apache双向ssl的配置还有apache虚拟主机的知识. 软件环境 Apache Httpd 2.2.16  openssl-1.0.0e.tar.gzSSL-Tools(http://www.openssl.or

关于wamp5中(apache)设置虚拟主机

找了很多文章,但是很多对于最新的apache都已经过时无法生效了. http://blog.csdn.net/yuluo727282752/article/details/6944359 这篇文章写得非常好,记录下来,下面为全文引用. 完成一个项目,总要进行一些测试,但是在自己本上测试或许有一些自己想不到的BUG出现,于是配置一个虚拟主机可以为自己更方便的解决BUG,也可以方便演示时大家测试 以下是我在网上寻到的一些方法,分享给大家 开发环境:WAMP 实例一,Apaceh配置localhost

在Apache中开启虚拟主机

最近在自学LAMP,在Apache中尝试着开启虚拟主机的时候,遇到了挺多麻烦的,这里也顺便总结一下,在Apache中开启虚拟主机的时候,主要有下面几个步骤: 1.新建一个文件夹作为虚拟主机,用来存储网站资源例如我是在Apache目录下新建了一个 htdocs_v 文件夹,里头新建了一个php文件,内容如下: <?php echo 'this is the first virtual host'; ?> 2.在配置文件中开启虚拟主机:打开Apache/conf/httpd.conf文件,修改如下