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

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

使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能同事支撑大量的Web站点。

httpd服务支持的虚拟主机类型包括以下三种:

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

基于IP地址:为每个虚拟主机使用不同的域名,其各自对应的IP地址也不相同;

基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用不同的TCP端口,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

这几种虚拟Web主机中,基于域名的虚拟主机是使用最为广泛的;基于IP地址和基于端口的虚拟主机一般只适用于公司内部。

基于域名主机的虚拟主机实现步骤:

1.为虚拟主机提供域名解析

首先需要搭建DNS服务以便提供域名解析,搭建DNS服务详细步骤可以参考博文CentOS 7搭建DNS服务,这里只介绍关键配置信息:

 [[email protected] /]# vim /etc/named.conf
//修改DNS服务主配置文件
                               …………    //省略部分内容
zone "a.com" IN {
        type master;
        file "a.com.zone";
};
zone "b.com" IN {
        type master;
        file "b.com.zone";
};
[[email protected] /]# vim /var/named/a.com.zone
//编写a.com区域配置文件

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.a.com.
www     IN      A       192.168.1.1
[[email protected] /]# vim /var/named/b.com.zone
//编写b.com区域配置文件

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      www.b.com.
www     IN      A       192.168.1.1
[[email protected] /]# systemctl start named
//启动DNS服务
[[email protected] /]# nslookup
> www.a.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   www.a.com
Address: 192.168.1.1
> www.b.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   www.b.com
Address: 192.168.1.1
//测试解析

2.为虚拟主机准备网页文档

[[email protected] /]# mkdir -p /var/www/html/acom
[[email protected] /]# mkdir -p /var/www/html/bcom
[[email protected] /]# echo "<h1>www.a.com</h1>" > /var/www/html/acom/index.html
[[email protected] /]# echo "<h1>www.b.com</h1>" > /var/www/html/bcom/index.html
//文件存放位置可以自定义

3.添加虚拟主机配置
当虚拟Web主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在httpd服务的主配置文件通过Include加载这些配置。这样可以将对httpd服务的主配置文件的修改减至最少,更方便配置内容的维护。
[```
[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
//创建独立的配置文件
<VirtualHost :80> //表示所有地址
ServerAdmin [email protected] //管理员邮箱地址
DocumentRoot "/var/www/html/acom" //设置a虚拟站点区域
ServerName www.a.com //域名
ServerAlias www.dummy-host.example.com //别名
ErrorLog "logs/www.a.com.error_log" //错误日志
CustomLog "logs/www.a.com.access_log" common //访问日志
<Directory "/var/www/html">
Require all granted //允许所有主机访问
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/html/bcom"
ServerName www.b.com
ServerAlias www.dummy1-host.example.com
ErrorLog "logs/www.b.com.error_log"
CustomLog "logs/www.b.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[[email protected] /]# vim /usr/local/httpd/conf/httpd.conf
//编写httpd服务的主配置文件
………… //省略部分内容
Include conf/extra/httpd-vhosts.conf
//加载独立的配置文件
[[email protected] /]# systemctl start httpd
//启动httpd服务


4.客户机访问测试
![](https://s1.51cto.com/images/blog/201907/16/f8bd49d7e2260dc575bfb2f60f55adb6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201907/16/727d90d57522452a42bd3b633235ac64.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**基于IP地址的虚拟主机实现步骤**
实验环境中,所以在服务器上模拟一个IP地址

[[email protected] /]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
//复制网卡配置文件
[[email protected] network-scripts]# vim ifcfg-ens33:0
//修改刚才复制的网卡配置文件
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0 //必须修改
UUID=fddc7556-c28d-4149-afb8-13356cdeb279
DEVICE=ens33:0 //必须修改
ONBOOT=yes
IPADDR=192.168.1.11 //必须修改
[[email protected] network-scripts]# ifdown ens33:0;ifup ens33:0
//重新加载ens33:0网卡的配置文件
[[email protected] network-scripts]# ifconfig ens33:0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:98:42:5d txqueuelen 1000 (Ethernet)
[[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
//修改虚拟主机配置文件
<VirtualHost 192.168.1.1:80> //把*改为IP地址
ServerAdmin [email protected]
DocumentRoot "/var/www/html/acom"
ServerName www.a.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/www.a.com.error_log"
CustomLog "logs/www.a.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.11:80> //把*改为IP地址
ServerAdmin [email protected]
DocumentRoot "/var/www/html/bcom"
ServerName www.b.com
ServerAlias www.dummy1-host.example.com
ErrorLog "logs/www.b.com.error_log"
CustomLog "logs/www.b.com.access_log" common
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
[[email protected] /]# systemctl restart httpd
//重新加载httpd服务

客户机访问测试
![](https://s1.51cto.com/images/blog/201907/16/d181ec6f749e0132eecc031a8d60001e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201907/16/02c0ce8f3bc40674a77d221292ca7b71.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

**基于端口的虚拟主机实现步骤**
修改虚拟主机配置文件
[```
[email protected] /]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/acom"
    ServerName www.a.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.a.com.error_log"
    CustomLog "logs/www.a.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>

<VirtualHost *:8080>                              //修改端口信息
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/bcom"
    ServerName www.b.com
    ServerAlias www.dummy1-host.example.com
    ErrorLog "logs/www.b.com.error_log"
    CustomLog "logs/www.b.com.access_log" common
    <Directory "/var/www/html">
      Require  all granted
    </Directory>
</VirtualHost>
Listen 8080             //监听8080端口,写在主配置文件或虚拟主机配置文件都可以

[[email protected] /]# systemctl restart httpd
//重新加载httpd服务

强烈建议,修改端口信息的时候,千万不能修改为1~1024之间的端口,因为这些端口已经被系统服务使用!

客户机访问测试

原文地址:https://blog.51cto.com/14157628/2420711

时间: 2024-10-26 23:18:32

CentOS 7 中httpd服务构建虚拟Web主机详解的相关文章

构建虚拟web主机

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

Apache构建虚拟Web主机

Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额.Apache服务器可以运行在Linux.UNIX.Windows等多种操作系统平台中. Apache的主要特点: 开放源代码 跨平台应用 支持各种Web编程语言 模块化设计 运行非常稳定 良好的安全性 在同一台Apache服务器中运行多个web站点,其中的每一个站点实际上不会占用着整个服务器,通过虚拟web主机服务可以充分利用服务器的硬件资源,从

CentOS7构建虚拟Web主机(基于域名、端口、IP地址)

虚拟Web主机 在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机. httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 构建虚拟主机------基于域名 (1)安装bind.httpd服务. (2)进入named服务的主配置文件,将下图两个位置改为"any". [[email protected] ~]# vim /etc/named.conf (3)进入named服务的区域配置文件,添加两个域名的区域信息.

2.4 httpd 构建虚拟Web主机的三种方式

##############################构建Web虚拟主##################################httpd支持的虚拟主机类型包括以下三种.基于域名:为每个虚拟主机使用不同的域名,但是其对于的ip地址是相同的.基于IP地址:为每个虚拟主机使用不同的域名,且各自对于的ip地址也不相同.基于端口:不使用域名,IP地址来区分不同的站点内容,而是使用了不同的TCP端口号.` #################################基于IP地址的虚拟

CentOS 7 中httpd服务的用户限制详解

Apache HTTP Server 之所以受到众多企业的青睐,得益于其代码开源.跨平台.功能模块haul.可灵活定制等诸多优点,其不仅性能稳定,在安全性方面的表现也十分出色. 为了更好的控制对网站资源的访问,可以为特定的网站目录添加访问授权.授权的方式有两种:客户机地址限制,用户授权限制.以下所有操作必须基于httpd服务的环境下,搭建httpd服务可以参考博文CentOS 7 利用Apache搭建Web网站服务 我们来详细了解如何实现web服务器对用户的限制 客户机地址限制 通过Requir

AngularJS开发指南16:AngularJS构建大型Web应用详解

AngularJS是由Google创建的一种JS框架,使用它可以扩展应用程序中的HTML功能,从而在web应用程序中使用HTML声明动态内容.在该团队工作的软件工程师Brian Ford近日撰写了一篇blog,分享了如何使用AngularJS构建大型Web应用的经验.这些经验对于使用其他JS框架构建大型应用的开发者也极具借鉴意义. 这篇blog特别关注的是大型应用程序,作者首先给出的建议是,尽量不要让应用变得太巨大.而应该编写小型.功能专注的.模块化的部分,然后逐渐把它们组合起来,变得越来越大,

转:Eclipse中创建Maven版的Web工程(详解)

一.搭建步骤 ?首先创建一个Maven的Project,如下图: ?点击Next,勾选 Create a simple project ?点击Next,注意Packing要选择war,因为我们创建的是一个Web工程 ?由于packing是war包,那么下面也就多出了webapp的目录 ?由上图可知,这其实是一个Maven的目录结构,对于Maven来说这是一个Web工程,但对于Eclipse来说这是一个Java工程.Web工程目录至少得有一个WebContent以及WebContent下有web.

第二章 Web网站服务(二)——搭建基于域名的虚拟web主机

防伪码:自古逢秋悲寂寥,我言秋日胜春朝 web网站服务(二) 一.httpd服务的访问控制 作用: a.控制对网站资源的访问 b.为特定的网站目录添加访问授权 常用访问控制方式: a.客户机地址限制 b.用户授权限制 二.基于客户端地址的访问控制 Order配置项,定义控制顺序 先允许后拒绝,默认拒绝所有:Order allow,deny 先拒绝后允许,默认允许所有:Order deny,allow Allow.Deny配置项,设置允许或拒绝的地址 Deny from address1 addr

基于centos 7搭建Nginx网站服务器(包含虚拟web主机的配置)

Nginx专为性能优化而开发,其最大的优点就是它的稳定性和低系统资源消耗,以及对http并发连接的高处理能力,单台物理服务器可支持20000~50000个并发请求,正是如此,大量提供社交网络.新闻资讯.电子商务及虚拟主机等服务的企业纷纷选择Nginx来提供web服务,目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx. Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性: 高并发连接:官方测试能支撑5万并发连接,在实际生