Apache 虚拟主机

article/2025/9/1 23:37:58

文章目录

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


提示:以下是本篇文章正文内容,下面案例可供参考

一、访问主机服务的本质

  • 访问web服务,本质上看是访问某个端口,通常需要通过访问不同的域名或者端口,
    实现对不同网站的访问(具体到服务器里就是不同目录),这个时候就需要设置网站空间。

1.1Apache访问控制

●作用
控制对网站资源的访问
为特定的网站目录添加访问授权
●常用访问控制方式
客户机地址限制
用户授权限制

1.2Apache保持连接

  • HTTP协议是基于TCP协议之上的,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源。
  • 解决办法是HTTP连接保持。就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户
    端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。

1.3配置httpd-default.conf

vim /usr/local/httpd/conf/extra/httpd-default.conf

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

  • KeepAlive On:设置是否打开连接保持功能,后面接OFF表示关闭,接On表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。
  • MaxKeepAliveRequests 100:用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素。
  • KeepAliveTimeout 5:设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源。

二、httpd支持的虚拟主机类型

2.1、基于域名

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

2.2、基于IP地址

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

2.3、基于端口

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

三、基于域名访问虚拟主机

3.1安装Apache

[root@httpd ~]# cd /opt
[root@httpd opt]# rz -E
[root@httpd opt]# ls
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2  rh

在这里插入图片描述

  • 解压
[root@httpd opt]# tar xf apr-1.6.2.tar.gz
[root@httpd opt]# tar xf apr-util-1.6.0.tar.gz
[root@httpd opt]# tar xf httpd-2.4.29.tar.bz2
  • 解压apr跨平台组件包和httpd源码包到当前目录下;并将跨平台组件包移动到源码包srclib目录下
[root@httpd opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@httpd opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
  • 安装依赖包
[root@httpd opt]# yum -y install \
> gcc \        //C语言的编译器
> gcc-c++ \   //C++编译器
> make \       //源代码编译器
> pcre-devel \  //perl接口开发数据包
> expat-devel \  //用于支持网站解析HTML、XML文件
> perl          //perl语言编译器

在这里插入图片描述

  • 配置编译
[root@httpd opt]# cd httpd-2.4.29
[root@httpd httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \  //指定路径
> --enable-so \   //开启核心功能模块
> --enable-rewrite \  //开启重写功能,防盗链保护
> --enable-charset-lite \  //字符集设定
> --enable-cgi   //开启通用网关接口,它定义了web服务器运行时外部程序的规范
make && make install
  • 优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
  • 复制/usr/local/httpd/bin/apachectl 这个模板到/etc/init.d/httpd目录下
[root@httpd httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
  • 添加两行内容,加上注释
vim /etc/init.d/httpd
2 # chkconfig: 35 85 21  //35级别自动运行,第85个启动,第21个关闭
3 # description: Apache is a World Wide Web server //设置开机自启

在这里插入图片描述

  • 将httpd加入到系统管理器
[root@httpd httpd-2.4.29]# chkconfig --add httpd
  • 修改主配置文件
[root@httpd httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf
52 Listen 192.168.27.136:80
197 ServerName www.kgc.com:80

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

3.2虚拟主机提供域名解析

①部署DNS域名解析服务器,提供域名解析
②在/etc/hosts文件中临时配置域名IP地址的映射关系

[root@httpd httpd-2.4.29]# vim /etc/hosts
echo "192.168.27.136 www.benet.com" >> /etc/hosts
echo "192.168.27.136 www.accp.com" >> /etc/hosts

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

  • 为虚拟主机准备网页文档
[root@httpd httpd-2.4.29]# cd /var/www/html
[root@httpd html]# mkdir -p /var/www/html/benet
[root@httpd html]# mkdir -p /var/www/html/accp
[root@httpd html]# ls
accp  benet
[root@httpd html]# echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
[root@httpd html]# echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html

在这里插入图片描述

  • 添加虚拟主机配置
[root@httpd httpd-2.4.29]# cd /opt
[root@httpd opt]# cd /usr/local/httpd
[root@httpd httpd]# cd conf
[root@httpd conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@httpd conf]# cd extra
[root@httpd extra]# ls
httpd-autoindex.conf  httpd-mpm.conf
httpd-dav.conf        httpd-multilang-errordoc.conf
httpd-default.conf    httpd-ssl.conf
httpd-info.conf       httpd-userdir.conf
httpd-languages.conf  httpd-vhosts.conf  //虚拟主机模板文件
httpd-manual.conf     proxy-html.conf

在这里插入图片描述

  • 源码编译安装的虚拟主机配置文件路径
<VirtualHost 192.168.27.136:80>DocumentRoot "/var/www/html/benet"ServerName www.benet.comErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost><VirtualHost 192.168.27.136:80>DocumentRoot "/var/www/html/accp"ServerName www.accp.comErrorLog "logs/accp.com-error_log"CustomLog "logs/accp.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">    #设置目录访问权限Options None               #不启用任何的服务器特性AllowOverride None         #不允许重写Apache默认配置Require all granted        #允许所有主机访问
</Directory> 

在这里插入图片描述

  • 加载独立/扩展的配置文件
[root@httpd conf]# vim /usr/local/httpd/conf/httpd.conf
479 # Virtual hosts
480 Include conf/extra/httpd-vhosts.conf  //取消注释

在这里插入图片描述

  • 重启
[root@httpd conf]# systemctl restart httpd
  • 在虚拟机终端 打开火狐浏览器,访问 www.accp.com 和 www.benet.com
    在这里插入图片描述

3.3基于IP地址访问虚拟主机

  • 创建虚拟网卡
[root@httpd conf]# ifconfig ens33:0 192.168.27.100 netmask 255.255.255.0

在这里插入图片描述

  • 源码编译安装的虚拟主机配置文件路径
[root@httpd conf]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf<VirtualHost 192.168.27.136:80>DocumentRoot "/var/www/html/benet"ServerName www.benet.comErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost><VirtualHost 192.168.27.100:80>  //将IP地址改为虚拟网卡的IP地址DocumentRoot "/var/www/html/accp"ServerName www.accp.comErrorLog "logs/accp.com-error_log"CustomLog "logs/accp.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">Options NoneAllowOverride NoneRequire all granted
</Directory>

在这里插入图片描述

  • 配置主配置文件
[root@httpd conf]# vim /usr/local/httpd/conf/httpd.conf52 Listen 192.168.27.136:80
53 Listen 192.168.27.100:80  //添加监听地址
  • 重启
systemctl restart httpd

在这里插入图片描述

  • 在虚拟机终端的火狐浏览器访问192.168.27.136和192.168.27.100
  • 在这里插入图片描述
    在这里插入图片描述

3.4基于端口号进行访问虚拟主机

root@httpd conf]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.27.136:80>DocumentRoot "/var/www/html/benet"ServerName www.benet.comErrorLog "logs/benet.com-error_log"CustomLog "logs/benet.com-access_log" common
</VirtualHost><VirtualHost 192.168.27.136:8080>  //将端口号由80改为8080DocumentRoot "/var/www/html/accp"ServerName www.accp.comErrorLog "logs/accp.com-error_log"CustomLog "logs/accp.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">Options NoneAllowOverride NoneRequire all granted
</Directory>

在这里插入图片描述

  • 更改主配置文件
[root@httpd conf]# vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.27.136:80
Listen 192.168.27.136:8080

在这里插入图片描述

  • 重启
[root@httpd conf]# systemctl  restart httpd
[root@httpd conf]# netstat -antp | grep httpd

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


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

相关文章

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)…

nmap参数

nmap参数&#xff08;转&#xff09; 进行ping扫描&#xff0c;打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指定网络上的每台主机&#xff0c;不发送任何报文到目标主机: nmap -sL 192.168.1.0/24 探测目标主…

主动扫描技术nmap详解

主动扫描与被扫描目标有一个互动的过程&#xff0c;目标是可能知道自己在被扫描的&#xff1b;主动扫描一般都是针对目标发送特制的数据包&#xff0c;然后根据目标主机的反应来获得一些信息&#xff0c;帮助我们过滤无意义的主机&#xff0c;建立目标的网络拓扑&#xff0c;主…

nmap 扫描数据分析

本案22端口为开放端口&#xff0c;110为未开放端口 Wireshark上使用下面的表达式 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port22 ip.addr192.168.104.127 and ip.addr192.168.104.61 and tcp.port110 命令一、 nmap -sS SYN-->SYN ACK-->RST …

Nmap专题

Nmap专题笔记 介绍网络扫描相关概念和Nmap的作用。介绍Nmap相关概念、演示简单的安装过程。列举Nmap的主要参数&#xff0c;介绍相关参数。实例演示Nmap的常用扫描技巧。介绍使用Nmap的脚本扫描。 建议学习方法 1.熟记Nmap的主要参数命令。 2.学习OSI七层模型的相关知识&…

Nmap扫描

基本快速扫描 Nmap 默认发送一个arp的ping数据包来探测目标主机在1-10000范围内所开放的端口。 nmap 10.130.1.43 快速扫描多个目标 nmap <target ip1 address> <target ip2 address> nmap 10.130.1.28 10.130.1.43 详细描述输出扫描 简单扫描并对返回的结果详细描…

Nmap入门

Nmap入门 Nmap介绍 nmap是用来探测网络、目标主机的操作系统&#xff0c;安全审计的工具&#xff0c;可以用来快速扫描。nmap也有图形界面。 特点&#xff1a; 主机测试端口扫描版本检测支持探测脚本的编写 kali虚拟机中本来就有nmap&#xff0c;所以安装好kali之后直接在…

网络安全nmap扫描端口命令详解linux网络探测

简介&#xff1a; nmap是一个网络连接端扫描软件&#xff0c;用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端&#xff0c;并且推断计算机运行哪个操作系统&#xff08;这是亦称 fingerprinting&#xff09;。它是网络管理员必用的软件之一&#xff0c;以及用…

cut指令

一、定义 正如其名&#xff0c;cut的工作就是“剪”&#xff0c;具体的说就是在文件中负责剪切数据用的。cut以行为单位处理数据&#xff0c;而不是整篇信息分析&#xff0c;这种机制和sed一样。 二、作用 将同一行里面的数据进行分解&#xff0c;最常使用在分析一些数据或文…