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

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

实际中,我们最常用的还是不同域名来访问网站。
一、基于域名的虚拟主机:
首先我们需要为虚拟主机提供域名解析:

[[email protected] /]# vim /etc/named.conf
……       //
zone "test1.com" in {
        type master;
        file "test1.com.zone";
};

zone "test2.com" in {
        type master;
        file "test2.com.zone";
};
[[email protected] /]# vim /var/named/test1.com.zone
……       //
        in      ns      www.test1.com.
www     in      a       192.168.1.10
[[email protected] /]# vim /var/named/test2.com.zone
……      //
        in      ns      www.test2.com.
www     in      a       192.168.1.10

为虚拟主机准备网页文档:

[[email protected] /]# mkdir -p /var/www/html/test1com
[[email protected] /]# mkdir -p /var/www/html/test2com
[[email protected] /]# echo "<h1>www.test1.com</h1>" > /var/www/html/test1com/index.html
[[email protected] /]# echo "<h1>www.test2.com</h1>" > /var/www/html/test2com/index.html

添加虚拟主机配置:

[[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 

配置 test1 的虚拟站点区域:
 ……        // 省略部分内容
<VirtualHost *:80>             # 配置监听地址和端口  “*” 代表任意地址
    ServerAdmin [email protected]     # 设置管理员的邮箱   可删除
    DocumentRoot "/var/www/html/test1com"    # 指定网站根目录
    ServerName www.test1.com                 # 配置域名
    ServerAlias www.dummy-host.example.com     # 配置别名
    ErrorLog "logs/www.test1.com-error_log"   # 记录错误日志
    CustomLog "logs/www.test1.com-access_log" common    # 记录访问日志
        <Directory "/var/www/html">     # 设置目录访问权限
        Require all granted    # 允许所有
        </Directory>
</VirtualHost>
配置 test2 的虚拟站点区域:
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
[[email protected]ww /]# vim /usr/local/httpd/conf/httpd.conf   # 进入主配置文件
……
Include conf/extra/httpd-vhosts.conf         # 找到本行后将开头 # 去掉
[[email protected] /]# systemctl restart httpd      重启服务使配置生效

客户机访问 web 验证:


二、基于 IP 地址的虚拟主机:
每一种方式之间毫无任何关联,千万别把基于IP地址的虚拟主机和基于域名的搞混了

[[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
……
<VirtualHost 192.168.1.10:80>             # 配置监听地址为 192.168.1.10
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/test1com"
    ServerName www.test1.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
<VirtualHost 192.168.1.20:80>             # 配置监听地址为 192.168.1.20
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>



三、基于端口的虚拟主机:

[[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
……
<VirtualHost 192.168.1.10:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/test1com"
    ServerName www.test1.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
<VirtualHost 192.168.1.10:8080>               # 修改端口号
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/test2com"
    ServerName www.test2.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.test2.com-error_log"
    CustomLog "logs/www.test2.com-access_log" common
        <Directory "/var/www/html">
        Require all granted
        </Directory>
</VirtualHost>
listen 80                      # 监听80端口(默认80也可不用写这一行)
listen 8080                  # 监听8080端口

注意:每次配置完毕后都需要重启服务

原文地址:https://blog.51cto.com/14227204/2424738

时间: 2024-10-21 15:39:27

基于 Apache 构建 web虚拟主机详解的相关文章

基于Linux搭建apache服务后,怎么构建web虚拟主机?

虚拟web主机指的是在同一台服务器中运行多个web站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为"虚拟"web主机,通过虚拟web主机服务可以充分利用服务器的硬件资源. 使用httpd可以非常方便的去搭建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点.httpd支持的虚拟主机类型有这么三种(与Windows 的IIS服务一样): 1.相同IP.端口号.不同域名的虚拟主机: 2.相同IP.不同端口号的虚拟主机: 3.不同IP.相同端口号的虚拟主机

Httpd服务器中构建Web虚拟主机

Web虚拟主机指的是在同一台服务器中运行多个Web站点,其中的每一个站点实际上并不肚子占用整个服务器,因此被成为"虚拟"Web主机.通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本'虚拟的Web主机有三种类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机对于基于IP地址的虚拟主机,每个虚拟Web主机使用不同的IP地址,但是都通过同一台httpd服务器对外提供Web浏览服务.正因如此,用来支撑这些虚拟Web主机的服务器就需要大量的网络接

基于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

本地机apache配置基于域名的虚拟主机详解

1.打开apache的httpd.conf文件,找到# Virtual hosts#Include conf/extra/httpd-vhosts.conf这一段把Include conf/extra/httpd-vhosts.conf前面的"#"去掉. 2.修改位于(win7)c:/windows/system32/drivers/etc/目录下的hosts文件增加一段:127.0.0.1    x.acme.com(你用来访问的域名) 3.我用的是wamp包,所以到c:/wamp/

Apache搭建web虚拟主机

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

CentOS 7 中httpd服务构建虚拟Web主机详解

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

Apache访问控制和Web虚拟主机

一.httpd服务的访问控制 可对特定的网站目录添加访问授权,对客户机地址限制.用户授权做限制:两种控制方式都应用与httpd.conf配置文件中的目录区域<Directory 目录位置>...</Directory>范围内 1.客户机地址限制 通过配置项Order.Deny from.Allow from,根据客户机的主机名或IP地址决定是否允许客户端访问:其中Order配置项用于设置限制顺序,Deny from和Allow from用于设置具体限制内容 Apache-2.2.x

Apache配置基于端口号的虚拟主机 Apache virtual host configuration is based on the port

有可能只有一个ip出口,但却有多个项目,那么就需要基于端口号架设虚拟主机. Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Virtual hosts Include conf/extra/httpd-vhosts.conf 如果没有开启,必须在httpd.conf文件中设置:如果开启,则可以在apache/conf/extra/httpd-vhosts.conf文件中设置,当然也还是可以再httpd.conf文件中进行设置

linux web服务器(二) 基于域名,ip,端口的web虚拟主机

linux web服务器(二) 1 :搭建基于域名的虚拟主机     首先为两个网站搭建dns服务器,并新建区域,分别为:www.goole.com和www.baidu.com     2) 修改配置文件 3)    修改数据文件 4)    重启dns服务 5)    搭建两个网站 6:准备网页 7)打开虚拟主机配置文件,修改配置文件 8: 添加以下内容 9)    修改主配置文件,启用虚拟主机       Vi /usr/local/httpd/conf/httpd.conf  去掉前面的#