Apache构建虚拟主机

article/2025/9/1 21:42:54

Apache 虚拟主机概述

访问web服务,本质上看(从协议上)是访问某个IP的主机上的某个端口(默认是80),通常需要通过访问不同的域名或者端口,实现对不同网站的访问(具体到服务器里就是不同目录),这个时候就需要设置网站空间。通常分为3种:基于域名、基于端口、基于IP以及它们的混合。

简单来说,Apache虚拟主机就是在一个Apache服务器上配置多个虚拟空间,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。
使用httpd可以非常方便的构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点

文章目录

  • Apache 虚拟主机概述
  • 构建虚拟主机
    • 安装HTTP DNS
    • 基于域名的虚拟主机
      • 编辑主配置文件
      • 编辑区域配置文件
      • 编辑区域数据文件
      • 验证DNS解析
      • 创建HTTP虚拟主机配置
      • 编辑虚拟主机主页,添加虚拟主机站点
      • 开启 http 服务,进行验证
    • 基于端口的虚拟主机
      • 在上面的基础下进行修改
      • 进行验证
    • 基于IP的虚拟主机
      • 增加一块网卡,配置其IP
      • 修改虚拟主机配置文件
      • 修改 http 主配置文件
      • 重启服务进行验证

构建虚拟主机

安装HTTP DNS

[root@4CentOS ~]# yum -y install bind
……省略部分……
已安装:bind.x86_64 32:9.11.4-16.P2.el7_8.6                               
作为依赖被升级:bind-libs.x86_64 32:9.11.4-16.P2.el7_8.6                          bind-libs-lite.x86_64 32:9.11.4-16.P2.el7_8.6                     bind-license.noarch 32:9.11.4-16.P2.el7_8.6                       bind-utils.x86_64 32:9.11.4-16.P2.el7_8.6                         
完毕![root@4CentOS ~]# yum -y install httpd
……省略部分……
已安装:httpd.x86_64 0:2.4.6-93.el7.centos                                
作为依赖被安装:httpd-tools.x86_64 0:2.4.6-93.el7.centos                          mailcap.noarch 0:2.1.41-2.el7                                     
完毕!

在这里插入图片描述

基于域名的虚拟主机

为每个虚拟主机使用不同的域名,但是其对应的IP地址使相同的
域名不同–IP相同,端口相同
基于域名是最为普遍的虚拟web主机类型

编辑主配置文件

[root@4CentOS ~]# vim /etc/named.conf 
options {listen-on port 53 { any; };             ##监听端口改为 any
……省略部分……allow-query     { any; };                ##也改为any

编辑区域配置文件

[root@4CentOS ~]# vim /etc/named.rfc1912.zones
…复制文件内的模板,粘贴进行编辑……12 zone "ora.com" IN {13         type master;14         file "ora.com.zone";15         allow-update { none; };16 };17 zone "nge.com" IN {18         type master;19         file "nge.com.zone";20         allow-update { none; };21 };

编辑区域数据文件

[root@4CentOS ~]# cd /var/named/
[root@4CentOS named]# ls
data     named.ca     named.localhost  slaves
dynamic  named.empty  named.loopback
[root@4CentOS named]# cp -p named.localhost ora.com.zone  ##这边需要 -p 保留原文件的权限
[root@4CentOS named]# vim ora.com.zone    ##与区域配置文件里的文件名相呼应
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       127.0.0.1
www  IN A       20.0.0.4     ##删除本来的自身环回 IP,增加这行,IP 为自身IP[root@4CentOS named]# cp -p ora.com.zone nge.com.zone
##这行复制之后不需要修改,因为解析的 IP 为一样的

验证DNS解析

[root@4CentOS named]# systemctl start named
[root@4CentOS named]# echo "nemeserver 20.0.0.4" > /etc/resolv.conf  ##指向自己
[root@4CentOS named]# nslookup www.ora.com
Server:		127.0.0.1
Address:	127.0.0.1#53Name:	www.ora.com
Address: 20.0.0.4[root@4CentOS named]# nslookup www.nge.com
Server:		127.0.0.1
Address:	127.0.0.1#53Name:	www.nge.com
Address: 20.0.0.4

创建HTTP虚拟主机配置

[root@4CentOS named]# cd /
[root@4CentOS /]# cd /etc/httpd/conf
[root@4CentOS conf]# ls
httpd.conf  magic
[root@4CentOS conf]# mkdir fenji
[root@4CentOS conf]# cd fenji/
[root@4CentOS fenji]# vim vhost.conf
……下面1-18都为手敲,没有模板……1 <VirtualHost *:80>2  DocumentRoot "/var/www/html/ora"3  ServerName www.ora.com4  ErrorLog "logs/www.ora.com.error_log"5  CustomLog "logs/www.ora.com.error_log" common6  <Directory "/var/www/html">7    Require all granted8  </Directory>9 </VirtualHost>10 <VirtualHost *:80>11  DocumentRoot "/var/www/html/nge"12  ServerName www.nge.com13  ErrorLog "logs/www.nge.com.error_log"14  CustomLog "logs/www.nge.com.error_log" common15  <Directory "/var/www/html">16    Require all granted17  </Directory>18 </VirtualHost>

编辑虚拟主机主页,添加虚拟主机站点

添加虚拟主机主页

[root@4CentOS /]# cd /var/www/html/
[root@4CentOS html]# ls
[root@4CentOS html]# mkdir ora nge
[root@4CentOS html]# echo "<h1>This is Ora index</h1>" > ora/index.html
[root@4CentOS html]# echo "<h1>This is Nge index</h1>" > nge/index.html
[root@4CentOS html]# tree /var/www/html/     ##使用 tree 命令查看文件树
/var/www/html/
├── nge
│   └── index.html
└── ora└── index.html2 directories, 2 files

添加虚拟主机站点

[root@4CentOS /]# vim /etc/httpd/conf/httpd.conf 
……在最后一行添加……
Include conf/fenji/vhost.conf

开启 http 服务,进行验证

[root@4CentOS fenji]# systemctl start httpd
[root@4CentOS fenji]# setenforce 0
[root@4CentOS fenji]# iptables -F

在这里插入图片描述在这里插入图片描述

基于端口的虚拟主机

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

在上面的基础下进行修改

修改虚拟主机配置,在第二个虚拟主机的端口部分改为 8080,改为别的也行

[root@4CentOS /]# vim /etc/httpd/conf/fenji/vhost.conf 
……省略部分……
<VirtualHost *:8080>DocumentRoot "/var/www/html/nge"ServerName www.nge.comErrorLog "logs/www.nge.com.error_log"CustomLog "logs/www.nge.com.error_log" common<Directory "/var/www/html">Require all granted
……省略部分……[root@4CentOS /]# vim /etc/httpd/conf/httpd.conf
Listen 20.0.0.4:80        ##监听地址改为本机 IP,80端口
Listen 20.0.0.4:8080    ##监听地址改为本机 IP,8080端口·
#Listen 80   ##关闭 IPv6 监听[root@4CentOS /]# systemctl reload httpd

进行验证

[root@4CentOS /]# systemctl restart httpd
[root@4CentOS /]# netstat -natp |grep httpd
tcp        0      0 20.0.0.4:8080           0.0.0.0:*               LISTEN      68168/httpd         
tcp        0      0 20.0.0.4:80             0.0.0.0:*               LISTEN      68168/httpd  

在这里插入图片描述

基于IP的虚拟主机

为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同
这种方式需要为服务器配备多个网络接口,因此应用不是很广泛
IP不同,端口相同

增加一块网卡,配置其IP

在上面的配置下进行修改

[root@4CentOS /]# cd /etc/sysconfig/network-scripts/
[root@4CentOS network-scripts]# cp ifcfg-ens33 ifcfg-ens34
[root@4CentOS network-scripts]# vim ifcfg-ens34
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens34"
DEVICE="ens34"
ONBOOT="yes"
IPADDR="20.0.0.41"
PREFIX="24"
GATEWAY="20.0.0.2"
DNS1="114.114.114.114"
[root@4CentOS network-scripts]# systemctl restart network

修改虚拟主机配置文件

[root@4CentOS /]# cd /etc/httpd/conf/
[root@4CentOS conf]# cd fenji/
[root@4CentOS fenji]# vim vhost.conf 
<VirtualHost 20.0.0.4:80>     ## * 改为 ip 地址DocumentRoot "/var/www/html/ora"ServerName www.ora.comErrorLog "logs/www.ora.com.error_log"CustomLog "logs/www.ora.com.error_log" common<Directory "/var/www/html">Require all granted</Directory>
</VirtualHost>
<VirtualHost 20.0.0.41:80>    ## * 改为 ip 地址DocumentRoot "/var/www/html/nge"ServerName www.nge.comErrorLog "logs/www.nge.com.error_log"CustomLog "logs/www.nge.com.error_log" common<Directory "/var/www/html">Require all granted</Directory>
</VirtualHost>

修改 http 主配置文件

[root@4CentOS conf]# vim httpd.conf 
#
Listen 20.0.0.4:80
Listen 20.0.0.41:80

重启服务进行验证

[root@4CentOS conf]# systemctl start httpd
[root@4CentOS conf]# netstat -natp |grep httpd
tcp        0      0 20.0.0.41:80            0.0.0.0:*               LISTEN      69178/httpd         
tcp        0      0 20.0.0.4:80             0.0.0.0:*               LISTEN      69178/httpd  

在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/lt2yKwJr.shtml

相关文章

Windows系统中apache虚拟主机配置

参考文章如下&#xff1a; WINDOWS 下APACHE虚拟主机配置 Apache网站目录访问权限设置 首先&#xff0c;在Apache24文件夹中找到conf文件夹&#xff0c;并打开其中的extra文件夹&#xff0c;选择httpd-vhosts.conf文件&#xff0c;记事本方式打开。 大概在第33行会看到 这个就…

Linux环境下Apache配置多个虚拟主机

这样一种场景&#xff1b;我们有一台服务器&#xff1b;但是想挂多个网站&#xff1b;那么Apache下配置虚拟主机可以满足这个需求&#xff1b; 比较简单的是基于主机名的配置步骤如下&#xff1a; 示例环境 ip&#xff1a;115.28.17.191 域名&#xff1a;baijunyao.com thinkbj…

Linux下配置Apache虚拟主机(基于IP地址)

Linux下配置Apache虚拟主机(基于IP地址) 一、虚拟主机 虚拟主机&#xff0c;又称虚拟服务器&#xff0c;是一种在单一主机或主机群上&#xff0c;实现多网域服务的方法&#xff0c;可以运行多个网站或服务的技术。虚拟主机之间完全独立&#xff0c;并可由用户自行管理&#xf…

apache虚拟主机配置与nginx虚拟主机配置

1.什么是虚拟主机&#xff1f; 虚拟主机&#xff08;英语&#xff1a;virtual hosting&#xff09;或称 共享主机&#xff08;shared web hosting&#xff09;&#xff0c;又称虚拟服务器&#xff0c;是一种在单一主机或主机群上&#xff0c;实现多网域服务的方法&#xff0c;…

apache 虚拟主机如何配置

apache 虚拟主机如何配置&#xff1f;相信很多没有经验的人对此束手无策&#xff0c;为此本文总结了问题出现的原因和解决方法&#xff0c;通过这篇文章希望你能解决这个问题。 apache虚拟主机就是在apache服务器上配置多个虚拟主机&#xff0c;从而让一个服务器提供多站点的服…

Apache虚拟主机的实现方式

Apache虚拟主机的实现方式有3种。 基于IP的虚拟主机 基于端口的虚拟主机 基于域名的虚拟主机 配置环境 系统&#xff1a;CentOS7.5 工具&#xff1a;XShell6 ** 配置准备 ** 1.安装httpd yum install httpd -y2.查看安装了内容 rpm -ql httpd | less3、配置Selinux文件&am…

如何配置apache虚拟主机

如何配置apache虚拟主机 实验目标&#xff1a;在apache实现基于域名的虚拟主机 实验用的XAMPP版本为1.7.7&#xff0c;内含apache版本为2.2.21 实验前准备&#xff1a; 1. 为了测试不同的域名&#xff0c;在Windows/System32/drivers/etc/下觅得hosts文件&#xff0c;在其中…

Apache 虚拟主机

文章目录 一、访问主机服务的本质1.1Apache访问控制1.2Apache保持连接1.3配置httpd-default.conf 二、httpd支持的虚拟主机类型2.1、基于域名2.2、基于IP地址2.3、基于端口 三、基于域名访问虚拟主机3.1安装Apache3.2虚拟主机提供域名解析3.3基于IP地址访问虚拟主机3.4基于端口…

Apache配置虚拟主机

1.安装apache服武器 yum install httpd -y ##apache软件 yum install httpd-manual ##apache的手册 systemctl start httpd systemctl enable httpd firewall-cmd --list-all ##列出火墙信息 firewall-cmd --permanent --add-servicehttp ##永久允许…

Apache虚拟主机配置详细教程

文章目录 Apache 虚拟主机企业应用部署一个端口不同域名调试worker工作模式进行压力测试权限设置Apache 配置文件详解Apache Rewrite 规则讲解Apache配置文件权限操作 总结 Apache 虚拟主机企业应用 企业真实环境中&#xff0c;一台WEB服务器发布单个网站会非常浪费资源&#x…

Apache虚拟主机的三种实现方式

Apache虚拟主机的三种实现方式 一、Apache简介二、Apache的特性三、Apache虚拟主机介绍四、安装Apache步骤1.安装httpd软件包2.放行防火墙服务3.查看httpd进程4.创建测试网站文件 五、三种虚拟主机的配置方法1.基于域名的虚拟主机①创建网页文件②创建服务配置文件③查看web1.c…

Apache配置虚拟主机三种方式(保姆级教学)

由于本人很笨&#xff0c;第一次学步骤比较多。想学的可以耐下心来看、来学。 实验环境&#xff1a;ContOS 7&#xff0c;Apache服务器 在ContOS中可以运行一下代码直接下载 [rootlocalhost ~]# yum install -y httpd 下载完可以查看下载的内容 [rootlocalhost ~]# rpm -q…

Apache的虚拟主机

一&#xff1a;web的虚拟主机 虚拟web主机指的是在同一台服务器中运行多个web站点&#xff0c;其中的每个网站并不单独占用整个服务器&#xff0c;因此被称为“虚拟”web主机&#xff0c;通过虚拟web主机服务可以充分利用服务器的硬件资源&#xff0c;从而降低网站构建与运行成…

excel一直显示“操作系统当前的配置不能运行此应用程序”

问题描述 我的系统win10&#xff0c;操作x64,安装office2019&#xff0c;由于学习中不经常使用到excel时隔半年我今天打开excel一直显示“操作系统当前的配置不能运行此应用程序 ”&#xff0c;好家伙给我整不会了&#xff0c;不慌让我们打开百度&#xff01;百度半天都没有解…

由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题

我们用 VS 2005 编写非托管的程序, 在一台未安装 .net 开发环境的机器上运行会出现 "由于应用程序的配置不正确&#xff0c;应用程序未能启动&#xff0c;重新安装应用程序可能会纠正这个问题"。 开始时还以为必须要安装 .net Framework 2.0 &#xff0c; 然后安装…

由于应用程序配置不正确,程序未能启动”--原因及解决方法

由于应用程序配置不正确,程序未能启动”--原因及解决方法 http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry 问题描述:当运行由VC 2005 编译的程序时,出现错误消息“由于应用程序配置不正确,程序未能启动.重新安装应用程序可能会纠正这个错误”解决方法…

一种解决运行程序报“应用程序配置不正确”的问题

在我们开发工程中&#xff0c;可能有些情况下&#xff0c;不能在本机进行调试。这个时候我们一般会使用VM&#xff08;vmware)建立一个虚拟机环境&#xff0c;然后把编译过的程序放在该虚拟机环境下执行调试。可是在某些情况下&#xff0c;不管我们编译的是debug还是release版本…

C# .NET 解决提示“由于应用程序配置不正确,应用程序未能启动..”的错误

C# 应用程序开发时&#xff0c;修改程序代码后&#xff0c;调试运行程序 莫名其妙弹出这个报错。 百度找解药呀&#xff0c;&#xff0c;找了好多方法&#xff0c;&#xff0c;都是 " 项目--->配置属性---->链接器---->清单文件--->生成清单-->设置为&q…

Win11应用程序启动提示配置不正确解决方法

Win11应用程序启动提示配置不正确解决方法分享。近期有不少的用户遇到了在启动应用程序的时候&#xff0c;出现错误提示的问题。出现的错误提示是应用配置不正确&#xff0c;那么这个错误提示问题要怎么去进行解决&#xff0c;一起看看具体的解决方法吧。 解决方法&#xff1a;…

“应用程序配置不正确, 程序无法启动”解决方法

最近在XP 32位系统上用VS2008开发的MFC Application程序在没有安装VS2008的Win7系统上双击运行以后出现了“应用程序配置不正确, 程序无法启动”的bug。经过半天时间的研究整理出三种方案可以用来解决该问题。 方法一:对于不需要运行时函数支持的工程可以采用该方法。 (1)…