千家信息网

Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,虚拟Web主机在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机。httpd支持的虚拟主机类型基于域名的虚拟主机基于IP地址的虚拟主机基于端口的虚拟主机构建虚拟主机-
千家信息网最后更新 2026年11月03日Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理

虚拟Web主机

在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机。

httpd支持的虚拟主机类型

  • 基于域名的虚拟主机
  • 基于IP地址的虚拟主机
  • 基于端口的虚拟主机

构建虚拟主机------基于域名

(1)安装bind、httpd服务。

(2)进入named服务的主配置文件,将下图两个位置改为"any"。

[root@localhost ~]# vim /etc/named.conf

(3)进入named服务的区域配置文件,添加两个域名的区域信息。

[root@localhost ~]# vim /etc/named.rfc1912.zoneszone "aaa.com" IN {        type master;        file "aaa.com.zone";        allow-update { none; };};zone "bbb.com" IN {        type master;        file "bbb.com.zone";        allow-update { none; };};

(4)进入"/var/named/"目录,保留权限复制一份"named.localhost"区域数据配置文件,命名为"aaa.com.zone",然后对其进行修改。

[root@localhost ~]# cd /var/named/[root@localhost named]# lsdata  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves[root@localhost named]# cp -p named.localhost  aaa.com.zone[root@localhost named]# [root@localhost named]# vim aaa.com.zone $TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1www IN  A       192.168.52.133

(5)再保留权限复制一份"aaa.com.zone"文件,命名为"bbb.com.zone",不用进行修改。然后开启named服务,关闭防火墙和增强性安全功能。

[root@localhost named]# cp -p aaa.com.zone bbb.com.zone[root@localhost named]# systemctl start named[root@localhost named]# [root@localhost named]# systemctl stop firewalld.service [root@localhost named]# setenforce 0[root@localhost named]# 

(6)再开一台win10虚拟机,将其DNS服务器的IP地址,设置为刚才Linux系统的IP地址。

(7)用win10主机去测试DNS服务能否解析,解析成功。

(8)进入"/etc/httpd/conf"目录,创建一个"extra/"目录,然后进入"extra/"目录,用vim编辑器,新建一个配置文件"vhost.conf",在配置文件里输入以下内容。

[root@localhost named]# cd /etc/httpd/conf[root@localhost conf]# lshttpd.conf  magic[root@localhost conf]# mkdir extra[root@localhost conf]# lsextra  httpd.conf  magic[root@localhost conf]# cd extra/[root@localhost extra]# vim vhost.conf  DocumentRoot "/var/www/html/aaa/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/bbb/"  ServerName www.bbb.com  ErrorLog "logs/www.bbb.com.error_log"  CustomLog "logs/www.bbb.com.access_log" common      Require all granted  

(9)进入"/var/www/html/"创建两个目录"aaa/"、"bbb/"。

[root@localhost extra]# [root@localhost extra]# cd /var/www/html/[root@localhost html]# ls[root@localhost html]# mkdir aaa bbb[root@localhost html]# lsaaa  bbb[root@localhost html]# 

(10)进入"aaa/"目录,新建一个站点首页文件,内容如下:

[root@localhost html]# cd aaa[root@localhost aaa]# ls[root@localhost aaa]# vim index.html

this is aaa web

(11)进入"bbb/"目录,新建一个站点首页文件,内容如下:

[root@localhost aaa]# cd ../bbb[root@localhost bbb]# ls[root@localhost bbb]# vim index.html

this is bbb web

(12)进入httpd服务的主配置文件,在末行将我们新建的配置文件写进主配置文件,然后启动httpd服务。

[root@localhost bbb]# vim /etc/httpd/conf/httpd.conf Include conf/extra/vhost.conf[root@localhost bbb]# systemctl start httpd[root@localhost bbb]# 

(13)用win10 主机去分别访问两个域名,都能访问成功。

构建虚拟主机------基于端口

(1)在上一个实验的基础上,进入配置文件"vhost.conf",添加一个"www.aaa.com"域名的8080端口。

[root@localhost bbb]# vim /etc/httpd/conf/extra/vhost.conf   DocumentRoot "/var/www/html/aaa/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/bbb/"  ServerName www.bbb.com  ErrorLog "logs/www.bbb.com.error_log"  CustomLog "logs/www.bbb.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/aaa02/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa02.com.error_log"  CustomLog "logs/www.aaa02.com.access_log" common      Require all granted  

(2)进入"/var/www/html"目录,新建一个"aaa02"目录,进入"aaa02"目录,新建一个站点首页文件,内容如下:

[root@localhost bbb]# cd ../[root@localhost html]# mkdir aaa02[root@localhost html]# cd aaa02/[root@localhost aaa02]# vim index.html

this is aaa02 web

(3)进入httpd服务主配置文件,添加监听端口,同时将IPv6的端口的监听注销。重启httpd服务。

[root@localhost aaa02]# vim /etc/httpd/conf/httpd.confListen 192.168.52.133:80Listen 192.168.52.133:8080#Listen 80[root@localhost aaa02]# systemctl restart httpd[root@localhost aaa02]# 

(4)再次用win10主机访问两个端口不同的域名,访问成功。

构建虚拟主机------基于IP

(1)给Linux主机添加一块网卡,查看IP地址。

(2)进入配置文件"vhost.conf",进行如下输入:

[root@localhost aaa02]# vim /etc/httpd/conf/extra/vhost.conf  DocumentRoot "/var/www/html/aaa/"  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/aaa02/"  ErrorLog "logs/www.aaa02.com.error_log"  CustomLog "logs/www.aaa02.com.access_log" common      Require all granted  

(3)分别对"aaa"站点与"aaa02"站点的主页文件进行如下修改:

[root@localhost aaa02]# cd ../aaa[root@localhost aaa]# vim index.html 

this is 133 aaa web

[root@localhost aaa]# cd ../aaa02[root@localhost aaa02]# vim index.html 

this is 139 aaa02 web

(4)进入httpd主配置文件,进行端口的添加与注释。然后重启httpd服务。

[root@localhost aaa02]# vim /etc/httpd/conf/httpd.conf Listen 192.168.52.133:80Listen 192.168.52.139:80#Listen 192.168.52.133:8080#Listen 80[root@localhost aaa02]# systemctl restart httpd[root@localhost aaa02]# 

(5)用win10主机去访问两个不同IP地址的站点,访问成功。但是只能用IP地址访问,一般情况访问网站用的是域名,接下来我们进行域名访问不同IP地址站点的配置。

(6)首先在配置文件"vhost.conf"中添加,域名"ServerName"。

[root@localhost aaa02]# vim /etc/httpd/conf/extra/vhost.conf  DocumentRoot "/var/www/html/aaa/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common      Require all granted    DocumentRoot "/var/www/html/aaa02/"  ServerName www.aaa02.com  ErrorLog "logs/www.aaa02.com.error_log"  CustomLog "logs/www.aaa02.com.access_log" common      Require all granted  

(7)进入named服务的区域配置文件中,添加一个"aaa02"的区域信息。

[root@localhost aaa02]# vim /etc/named.rfc1912.zones zone "aaa.com" IN {        type master;        file "aaa.com.zone";        allow-update { none; };};zone "aaa02.com" IN {        type master;        file "aaa02.com.zone";        allow-update { none; };};

(8)进入"/var/named/"目录,保留权限复制一份"aaa.com.zone"文件,命名为"aaa02.com.zone",同时对其进行如下修改:

[root@localhost aaa02]# cd /var/named/[root@localhost named]# lsaaa.com.zone  data     named.ca     named.localhost  slavesbbb.com.zone  dynamic  named.empty  named.loopback[root@localhost named]# cp -p aaa.com.zone aaa02.com.zone[root@localhost named]# vim aaa02.com.zone $TTL 1D@       IN SOA  @ rname.invalid. (                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      @        A       127.0.0.1www IN  A       192.168.52.139

(9)再次用win10主机,通过域名去访问两个不同IP地址的站点,访问成功。

访问权限控制

(1)查看win10主机的IP地址。

(2)在配置文件"vhost.conf"中添加拒绝win10主机访问,"www.aaa.com"域名规则。然后重启服务

[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf  DocumentRoot "/var/www/html/aaa/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common            Require not ip 192.168.52.129      Require all granted        DocumentRoot "/var/www/html/aaa02/"  ServerName www.aaa02.com  ErrorLog "logs/www.aaa02.com.error_log"  CustomLog "logs/www.aaa02.com.access_log" common      Require all granted  [root@localhost ~]# systemctl restart httpd

(3)清除win10主机浏览器的历史记录,然后分别访问两个域名。此时"www.aaa.com"域名已经访问不到首页了,只能看到Apache默认的页面。

(4)用"htpasswd"命令创建用户认证数据库,"-c"选项是用来创建文件"passwd"的,如果文件已经存在就不用加。

[root@localhost ~]# cd /etc/httpd/conf[root@localhost conf]# lsextra  httpd.conf  magic[root@localhost conf]# [root@localhost conf]# htpasswd -c /etc/httpd/conf/passwd test01New password: Re-type new password: Adding password for user test01[root@localhost conf]# htpasswd /etc/httpd/conf/passwd test02New password: Re-type new password: Adding password for user test02[root@localhost conf]# cat passwd test01:$apr1$72w08g5z$26fEl6Yqym/nPi08lhrYj/test02:$apr1$1sZRVmZ/$Qs2BrdK/SJoZwRe1sIXUQ/[root@localhost conf]# 

(5)在配置文件"vhost.conf"中,给"www.aaa02.com"域名添加身份验证访问规则,然后重启服务。

[root@localhost conf]# vim extra/vhost.conf  DocumentRoot "/var/www/html/aaa/"  ServerName www.aaa.com  ErrorLog "logs/www.aaa.com.error_log"  CustomLog "logs/www.aaa.com.access_log" common            Require not ip 192.168.52.129      Require all granted        DocumentRoot "/var/www/html/aaa02/"  ServerName www.aaa02.com  ErrorLog "logs/www.aaa02.com.error_log"  CustomLog "logs/www.aaa02.com.access_log" common      AuthName "DocumentRoot"    AuthType Basic    AuthUserFile /etc/httpd/conf/passwd    Require valid-user  [root@localhost conf]# systemctl restart httpd[root@localhost conf]# 

(6)清除win10主机的浏览器缓存,然后再次访问"www.aaa02.com"域名,结果弹出身份验证。输入用户和密码后访问成功。

文件 主机 配置 域名 服务 目录 站点 地址 两个 端口 虚拟主机 成功 区域 权限 不同 内容 首页 再次 输入 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 互联网科技工作委员会 中国互联网科技工作委员会毛军 互联网中国科技 奇酷互联网络科技 迪茉互联网科技 壕鑫互联网络科技 科技类的互联网平台 蓝色互联网科技 济南和联互联网科技有限公司 深圳国际航运科技和互联网 速维有品互联网信息科技(苏州)有限公司 互联网行业科技股 江苏苏星互联网科技有限公司 电子商务与互联网科技的关系 吉林省码上互联网科技电话 普陀区互联网教育科技管理办法 美国五大互联网科技公司市值多少 互联网对科技影响 互联网科技创业计划的风险分析 互联网络科技 互联网科技小贷 紫鲸互联网科技 深圳互联网科技的发展 雨阳互联网卡科技有限公司 杭州披云加互联网科技有限公司 中天科技中国工业互联网 科技信息时代互联网发展 平安好医生打造互联网科技医疗 现代科技的标志之一的互联网
0