如何进行Apache的配置与调试?

1. Apache简介

Apache 是一个提供HTTP服务的WEB软件,由apache 基金会进行运营并开源。

2. Apache特性

1. 模块化:很多功能都不是由apache本身来完成的,而是由apache自身携带的模块和其扩展模块来完成的,因此一个完整的Apache的web服务= 自身的模块 + 扩展模块(因此将扩展模块又称为第三方模块)

2. DSO特性:能够让apache的功能进行动态管理(所谓的动态管理也就是可以停止和启用模块)

3. 拥有丰富的进程模型(MPM多进程访问模型)

3. Apache进程模型

3.1. perfork 多进程模型

描述:进程预启动,减少频繁创建和销毁进程的开销,一个进程只能派生一个线程处理一个请求,同一时刻只能处理一个请求;最大可支持每秒启动32个进程

优点:稳定兼容apache早期的各种模块的功能

安全 只有主进程使用root启动后绑定80端口,工作进程使用普通用户启动

缺点: 对进程的消耗和创建频繁,因此消耗系统资源多(CPU资源)在高并发场景下,容易出现IO等待,也就是请求需要排队

场景:早期一些依赖apache较老的模块(比如CGI的脚本),还有低频的安全访问场景(智能终端设备的web管理系统,像光猫、路由器)

3.2. worker 多线程模型

  • 描述:启动多个子进程,同时每个子线程会创建线程出来,然后由线程去响应连接请求,这种模式下占用的资源较少,可以处理大量并发请求,但是其中子进程或线程崩溃,会影响该子进程下的全部任务,同时长连接的请求的被一直占用,直到超时后才会释放
  • 优点: 占用内存少、高并发下请求处理性能更优
  • 缺点:由于使用共享内存的机制进行进程间的通信,因此线程的安全系数不如进程强;高并发场景下的长连接是不擅长的,在高并发场景中如果开启长连接,当一定数量的请求保持长连接时就会发生IO阻塞,新的请求就没有空闲的线程来进行处理,导致请求排队
  • 场景:高并发的应用场景,例如论坛,电商网站…

3.3. event 异步IO模型

  • 描述:每个子进程下面有监听线程,用于改善worker模式下长连接一直占用线程的问题,监听线程负责接收请求,并将其转发给工作线程,工作线程负责真正处理请求,监控线程只会把真正的请求转发给工作线程,而空线程不会转发
  • 优点:解决了高并发中keepalive长期占用线程引起阻塞问题
  • 缺点: Linux在内核在2.6+以上(对epoll事件支持)
  • 场景: 适合实时通讯业务,在线聊天平台,通讯内的短连接应用(短时间内有大量的并发)

4. Apache的安装

4.1. 第一种、是基于发行包的安装(RPM包或者是YUM/DNF)

openEuler的仓库中已经自带了 apache的网络源

yum  install httpd  -y  

httppd  -v  #查看所安装的版本号

4.2. 第二种、是基于源码包的编译安装

1. 下载源码包

2. 安装编译工具和依赖包

3. 配置编译选项

4. 预编译

5. 编译安装

5. Apache的配置文件

  • /etc/httpd 服务配置文件目录(所有对于apache的配置包括虚拟主机、https、访问控制、身份验证、资源管理… 都在该目录下完成配置)
  • conf主配置文件的目录
  • conf/httpd.conf 主配置文件
  • conf.d 是扩展的配置目录(该目录重点用来配置虚拟主机)
  • conf.modules.d 功能模块的配置目录(该目录下放的是启用模块的配置文件)
  • logs 日志目录 对应的真实目录 /var/log/httpd/
  • access_log 访问日志
  • error_log 错误日志
  • modules /usr/lib64/httpd/modules 功能模块的库都放在该目录下
  • run /run/httpd 是apache的运行状态
  • 进程套接字、进程的PID、以及缓存
  • state apache的运行状态信息 (失败的记录)

6. Apache的工作模式

调整Apache的工作模式

配置文件: /etc/httpd/conf.modules.d/00-mpm.conf

只能三选一,需要使用哪一个工作模式,则取消前面的#号注释,注意两个模式必须注释掉不能启用

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

LoadModule mpm_worker_module modules/mod_mpm_worker.so

LoadModule mpm_event_module modules/mod_mpm_event.so

重新启动apache,然后使用httpd -V 查看工作模式

上海腾科教育致力于为广大学员提供全面且专业的认证指导服务,涵盖多个领域,通过精准的备考策略和高质量的模拟测试,确保每位学员都能够高效备考,轻松应对各类专业认证考试。此外,腾科教育还精心准备了丰富多样的免费课程资料,包括视频教程、学习手册、在线题库等,助力学员在学习的道路上不断进步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920983.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows环境GeoServer打包Docker极速入门

目录 1.前言2.安装Docker3.准备Dockerfile4.拉取linux环境5.打包镜像6.数据挂载6.测试数据挂载7.总结 1.前言 在 Windows 环境下将 GeoServer 打包为 Docker,可以实现跨平台一致性、简化环境配置、快速部署与恢复,同时便于扩展集成和版本管理&#xff0c…

《Vue零基础入门教程》第四课: 应用实例

往期内容 《Vue零基础入门教程》第一课:Vue简介 《Vue零基础入门教程》第二课:搭建开发环境 《Vue零基础入门教程》第三课:起步案例 参考官方文档 https://cn.vuejs.org/api/application#create-app 示例 const {createApp} Vue// 通…

NUXT3学习日记四(路由中间件、导航守卫)

前言 在 Nuxt 3 中,中间件(Middleware)是用于在页面渲染之前或导航发生之前执行的函数。它们允许你在路由切换时执行逻辑,像是身份验证、重定向、权限控制、数据预加载等任务。中间件可以被全局使用,也可以只在特定页…

使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像

文章目录 应用快速部署NginxRedisMySQLTomcat 制作镜像镜像原理基于已有容器创建使用 Dockerfile 创建镜像指令说明构建应用创建 Dockerfile 文件创建镜像 应用快速部署 Nginx docker run -d -p 80:80 nginx使用浏览器访问虚拟机地址 Redis docker pull redis docker run --…

02微服务系统与设计(D1_走出微服务误区:避免从单体到分布式单体)

目录 学习前言 一、回顾:从单体到微服务到 Function 二、分布式单体 分布式单体起因之一:通过共享库和网络客户端访问分布式能力 分布式单体起因之二:简单用远程调用替代进程内方法调用 分布式单体起因小结 三、引入非侵入式方案&#…

WEB攻防-通用漏洞文件上传js验证mimeuser.ini语言特性

知识点: 1、文件上传-前端验证 2、文件上传-黑白名单 3、文件上传-user.ini妙用 4、文件上传-php语言特性 详细点: 1、检测层面:前端,后端等 2、检测内容:文件头,完整型,二次渲染等 3、检…

鸿蒙学习高效开发与测试-集成开发环境(4)

文章目录 1、工程管理2、代码编辑3、界面预览4、编译构建5、代码调试6、性能调优7、设备模拟8、命令行工具9、端云一体化开发 HUAWEI DevEco Studio 是面向鸿蒙生态的集成开发环境,提供了一站式的鸿蒙生态应用、元服务开发能力,详细能力如图所示。 1、工…

基于yolov8、yolov5的茶叶等级检测识别系统(含UI界面、训练好的模型、Python代码、数据集)

摘要:茶叶等级检测在茶叶生产、质量控制和市场销售中起着至关重要的作用,不仅能帮助相关部门实时监测茶叶质量,还为智能化检测系统提供了可靠的数据支撑。本文介绍了一款基于YOLOv8、YOLOv5等深度学习框架的茶叶等级检测模型,该模…

Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图

用户打开 PDF 文档时,他们会看到 PDF 的初始视图。默认情况下,打开 PDF 时不会显示书签面板或缩略图面板。在本文中,我们将演示如何设置文档属性,以便每次启动文件时都会打开书签面板或缩略图面板。 Spire.PDF for .NET 是一款独…

从 HTML 到 CSS:开启网页样式之旅(开篇之一)——CSS 初体验与网页样式新征程

从 HTML 到 CSS:开启网页样式之旅(一)——CSS 初体验与网页样式新征程 前言一、为什么需要 CSS?二、CSS的引用(一)行内样式(二)内部样式(三)外部样式&#xf…

Android音频采集

在 Android 开发领域,音频采集是一项非常重要且有趣的功能。它为各种应用程序,如语音聊天、音频录制、多媒体内容创作等提供了基础支持。今天我们就来深入探讨一下 Android 音频采集的两大类型:Mic 音频采集和系统音频采集。 1. Mic音频采集…

数据结构C语言描述4(图文结合)--栈的实现,中序转后序表达式的实现

前言 这个专栏将会用纯C实现常用的数据结构和简单的算法;有C基础即可跟着学习,代码均可运行;准备考研的也可跟着写,个人感觉,如果时间充裕,手写一遍比看书、刷题管用很多,这也是本人采用纯C语言…

数据结构之一:复杂度

相关代码:SData/test_22/main.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 数据结构:在内存当中存储、组织数据的方式。(顺序表、链表、栈、队列、树等)。 算法:与数据结构配合使用,是对数据的处理。&#…

【鸿蒙技术分享:探索 HarmonyOS 开发之旅】

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Houdini和Blender如何使用CPU云渲染

近期,渲染101云渲染农场在产品和服务方面进行了重要更新,进一步提升了我们平台的渲染能力和兼容性,助力各位用户高效完成创作。云渲码6666 渲染101云渲码6666 1. Houdini和Blender支持CPU云渲染 我们不断拓展云渲染的工具和平台支持&#x…

02 —— Webpack 修改入口和出口

概念 | webpack 中文文档 | webpack中文文档 | webpack中文网 修改入口 webpack.config.js (放在项目根目录下) module.exports {//entry设置入口起点的文件路径entry: ./path/to/my/entry/file.js, }; 修改出口 webpack.config.js const path r…

网络编程 作业1

1.c #include <myhead.h> #define IP "192.168.60.45" #define PORT 6666 #define BACKLOG 100 void fun(int sss) {if(sssSIGCHLD){while(waitpid(-1,NULL,0)>0);}} int main(int argc, const char *argv[]) {//1.捕获子进程退出时的信号if(signal(SIGCHL…

【2024亚太杯亚太赛APMCM C题】数学建模竞赛|宠物行业及相关产业的发展分析与策略|建模过程+完整代码论文全解全析

第一个问题是&#xff1a;请基于附件 1 中的数据以及你的团队收集的额外数据&#xff0c;分析过去五年中国宠物行业按宠物类型的发展情况。并分析中国宠物行业发展的因素&#xff0c;预测未来三年中国宠物行业的发展。 第一个问题&#xff1a;分析中国宠物行业按宠物类型的发展…

外排序中的归并排序

外排序中的归并排序 7.11 外排序中的归并排序相关基础知识原理最终参考程序 7.11 外排序中的归并排序 外部排序&#xff1a;数据元素太多不能同时放在内存中&#xff0c;根据排序过程的要求不能在内外存之间移动数据的排序。&#xff08;下文也称外排序&#xff09; 例如 1 G…

wsl2中kali linux下的docker使用教程(教程总结)

一、前言 上一篇关于kali linux的文章是图形界面的配置&#xff0c;这里作者准备补充两点&#xff0c;一点是在使用VNC时&#xff0c;如果F8不能用的话&#xff0c;可以试试AltF8&#xff1b;然后就是VNC在初始化设置时的三个设置选项依次是密码、再输一次以及设置仅观看密码。…