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

news2024/11/24 0:17:29

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 查看工作模式

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win11 22H2/23H2系统11月可选更新KB5046732发布!

系统之家11月22日报道,微软针对Win11 22H2/23H2版本推送了2024年11月最新可选更新补丁KB5046732,更新后,系统版本号升至22621.4541和22631.4541。本次更新后系统托盘能够显示缩短的日期和时间,文件资源管理器窗口很小时搜索框被切…

SpringSecurity创建一个简单的自定义表单的认证应用

1、SpringSecurity 自定义表单 在 Spring Security 中创建自定义表单认证应用是一个常见的需求,特别是在需要自定义登录页面、认证逻辑或添加额外的表单字段时。以下是一个详细的步骤指南,帮助你创建一个自定义表单认证应用。 2、基于 SpringSecurity 的…

Cloud Native 云原生后端的开发注意事项

在云原生后端开发里,数据管理和存储这块得好好弄。数据库选型得综合考虑,像关系型数据有复杂查询需求就选 MySQL、PostgreSQL,海量非结构化数据就可以考虑 MongoDB、Cassandra 这些。设计数据库得遵循规范化原则,像设计电商订单表…

通达OA前台submenu.php存在SQL注入漏洞(CVE-2024-10600)

通达OA前台submenu.php存在SQL注入漏洞(CVE-2024-10600) pda/appcenter/submenu.php 未包含inc/auth.inc.php且 $appid 参数未用’包裹导致前台SQL注入 影响范围 v2017-v11.6 fofa app"TDXK-通达OA" && icon_hash"-759108386"poc http://url…

TCP连接(三次握手)(四次挥手)

建立TCP连接(三次握手) 以下是简单阐述 在确定目标服务器 IP 地址后,则经历三次握手建立TCP 连接 三次握手 代表客户端和服务端 之间的传递信息有三次 A说:我想和你聊天 ,你能听到我说话吗 B说:我可以听到…

【MySQL实战45讲笔记】基础篇——事务隔离

系列文章 基础篇——MySQL 的基础架构 基础篇——redo log 和 binlog 目录 系列文章1. 事务隔离1.1 隔离性与隔离级别1.2 如何实现事务隔离1.3 事务的启动方式1.4 思考: 使用什么方案来避免长事务 1. 事务隔离 简单来说,事务就是要保证一组数据库操作&…

upload-labs-master第12关详细教程

成功了别忘了回来留下你的评论哦,嘻嘻 目录 环境配置闯关 环境配置 需要的东西 phpstudy-2018 链接: https://pan.baidu.com/s/1D9l13XTQw7o6A8CSJ2ff9Q 提取码:0278 32位 vc9和11运行库 链接: https://pan.baidu.com/s/1pBV3W…

Mac 修改默认jdk版本

当前会话生效 这里演示将 Java 17 版本降低到 Java 8 查看已安装的 Java 版本: 在终端(Terminal)中运行以下命令,查看已安装的 Java 版本列表 /usr/libexec/java_home -V设置默认 Java 版本: 找到 Java 8 的安装路…

uniapp奇怪bug汇总

H5端请求api文件夹接口报错 踩坑指数:5星 小程序、APP之前都是用api文件夹的接口引用调用,在h5端启动时报错,研究半天,发现把api文件夹名字改成apis就能调用,就像是关键字一样无法使用。 import authApi from /api/…

交换机配置从IP(Switch Configuration from IP)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

大语言模型---ReLU函数的计算过程及其函数介绍

文章目录 1. 概要2. ReLU定义 1. 概要 **ReLU 作用:**主要用于为神经网络引入非线性能力,作用是将输入中的整数保留原值,负数置为 0。 从而在层与层之间引入非线性,使神经网络能够拟合复杂的非线性关系。 **ReLU使用场景&#xf…

QT如何共享文件+拷贝文件

QString sharedFolderPathImg "\\\\" IP "/profileImage/"; // 更换为你的共享文件夹路径QDir dirImg(sharedFolderPathImg);dirImg.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries);QVector<QString> curFileEntryArrayImg dirImg.entryList…

sourceTree无效的源路径问题解决

1.点击工具 2.点击选项 3.修改ssh客户端为OpenSSH 4.点击确定&#xff0c;然后重新打开软件

智慧营区整体解决方案

智慧军营概述智慧军营以信息化平台为基础&#xff0c;整合物联网、大数据、云计算、AI智能等技术&#xff0c;构建集人员、车辆、安防管理于一体的物联网平台。通过信息技术和网络技术&#xff0c;提高管理可控性&#xff0c;减少管理流程&#xff0c;降低成本&#xff0c;实现…

node实战:创建第一个简单的应用项目

1、确保node已安装 node -vnpm -v 2、创建项目文件夹 mkdir first-node-app-demo 3、初始化项目 3.1 执行&#xff08;输入&#xff09;命令 cd first-node-app-demo npm init -y 3.2 控制台输出 3.3 查看项目中的package.json文件 3.4 修改package.json文件 {"name…

STL——vector(1)

博客ID&#xff1a;LanFuRenC系列专栏&#xff1a;C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 今日好题 声明等级&#xff1a;黑色->蓝色->红色 欢迎新粉加入&#xff0c;会一直努力提供更优质的编程博客&#xff0c;希望大家三连支持一下啦 目录 尾…

pycharm在使用conda虚拟环境时Terminal爆红问题

问题&#xff1a; 解决方法&#xff1a; 复制cmd.exe后面所有路径 添加到pycharm的shell path中&#xff1a;

嵌入式LVGL自定义纯数字键盘

嵌入式LVGL自定义纯数字键盘 一、前言二、设置自定义数字键盘三、使用一、前言 嵌入式UI项目中有时候会使用到纯数字密码的需求,所以打算使用LVGL构建自定义的纯数字键盘。 二、设置自定义数字键盘 参考这个文章,以LV_KEYBOARD_MODE_USER_1为例,增加一个数字键盘,如下图所…

太速科技-512-基于ZU19EG的4路100G 8路40G的光纤汇流计算卡

基于ZU19EG的4路100G 8路40G的光纤汇流计算卡 一、板卡概述 本板卡系我司自主设计研发&#xff0c;基于Xilinx公司Zynq UltraScale MPSOC系列SOC XCZU19EG-FFVC1760架构&#xff0c;ARM端搭载一组64-bit DDR4&#xff0c;总容量达4GB&#xff0c;可稳定运行在2400MT/s…

【java-Neo4j 5开发入门篇】-最新Java开发Neo4j

系列文章目录 前言 上一篇文章讲解了Neo4j的基本使用&#xff0c;本篇文章对Java操作Neo4j进行入门级别的阐述&#xff0c;方便读者快速上手对Neo4j的开发。 一、开发环境与代码 1.docker 部署Neo4j #这里使用docker部署Neo4j,需要镜像加速的需要自行配置 docker run --name…