第9章 Apache WEB服务器企业实战

万维网 (WORLD WIDE WEB,WWW)服务器,也称之为WEB服务器,主要功能是提供网上信息浏览服务。WWW是 Internet的多媒体信息查询工具,是Internet上飞快发展的服务,也是目前用的最广泛的服务。正是因为有了WWW软件,才使得近年来 Internet 迅速发展。

目前主流的WEB服务器软件包括:Apache、Nginx、Lighttpd、IIS、Resin、Tomcat、WebLogic、Jetty等。

本章介绍Apache WEB服务器发展历史、Apache工作模式深入剖析、Apache虚拟主机、配置文件详解及Apache Rewrite企业实战等。

9.1 Apache WEB服务器入门简介

Apache HTTP Server是Apache软件基金会的一个开源的网页服务器,是世界使用排名第一的Web服务器软件,可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是目前最流行的Web服务器端软件之一。

Apache服务器是一个多模块化的服务器,经过多次修改,成为目前世界使用排名第一的Web服务器软件。Apache取自“A Patchy Server”的读音,即充满补丁的服务器,因为Apache基于GPL发布,大量开发者不断为Apache贡献新的代码、功能、新的特性、修改原来的缺陷。

Apache服务器的特点是使用简单、速度快、性能稳定,可以做负载均衡及代理服务器来使用。

9.2 Prefork MPM工作原理

每辆汽车都有发动机引擎,不同的引擎,对车子运行效率也不一样,同样Apache也有类似工作引擎或者处理请求的模块,亦可称之为多路处理模块(Multi-Processing Modules,MPM),Apache WEB服务器有三种处理模块:Prefork MPM、Worker MPM、Event MPM。

在企业中最常用的处理模块为Prefork MPM和Worker MPM,Event MPM不支持HTTPS方式,官网也给出“This MPM is experimental, so it may or may not work as expected”提示,所以很少被使用。

默认Apache处理模块为Prefork MPM方式,Prefork采用的预派生子进程方式,Prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,所以比较稳定。

Prefork的工作原理:控制进程Master在最初建立“StartServers”个进程后,为了满足MinSpareServers设置的最小空闲进程,所以需创建第一个空闲进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个,依次按照递增指数级创建进程数,最多每秒同时创建32个空闲进程,直到满足至少有MinSpareServers设置的值为止。

Apache的预派生模式(Prefork),基于预派生模式,不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能,不过由于Prefork MPM引擎是基于多进程方式提供对外服务,每个进程占内存也相对较高。

9.3 Worker MPM工作原理

相对于Prefork MPM,Worker方式是2.0版中全新的支持多线程和多进程混合模型的MPM,由于使用线程来处理,所以可以处理海量的HTTP请求,而系统资源的开销要小于基于Prefork多进程的方式。Worker也是基于多进程,但每个进程又生成多个线程,这样可以保证多线程可以获得进程的稳定性。

Worker MPM工作原理:控制进程Master在最初建立“StartServers”个进程,每个进程会创建ThreadsPerChild设置的线程数,多个线程共享该进程内存空间,同时每个线程独立地处理用户的HTTP请求。为了不在请求到来时再生成线程,Worker MPM也可以设置最大最小空闲线程。

Worker MPM模式下同时处理的请求总数=进程总数xThreadsPerChild,也即等于MaxClients。如果服务器负载很高,当前进程数不满足需求,Master控制进程会fork新的进程,最大进程数不能超过ServerLimit数,如果需调整的StartServers进程数,需同时调整ServerLimit值。

Prefork MPM与Worker MPM引擎区别小结如下:

 Prefork MPM模式:使用多个进程,每个进程只有一个线程,每个进程在某个确定的时间只能维持一个连接,稳定,内存开销较高;
 Worker MPM模式:使用多个进程,每个子进程包含多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合大并发、高流量的WEB服务器。Worker MPM缺点是一个线程崩溃,整个进程就会连同其任何线程一起挂掉。

9.4 Apache WEB服务器安装

从Apache官方分站点下载目前稳定版本httpd-2.2.32版本,目前最新版本为2.4版本,下载地址如下:

http://mirrors.hust.edu.cn/apache/httpd/httpd-2.2.32.tar.bz2

Apache WEB服务器安装步骤如下:

tar工具解压httpd包

tar  -xjvf  httpd-2.2.32.tar.bz2						

进入解压后目录

cd httpd-2.2.32/		

安装APR相关优化模块

yum install apr apr-devel apr-util apr-util-devel -y	    

预编译Apache,启用rewrite规则、启用动态加载库、开启Apache三种工作引擎

./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so --enable-mpms-shared=all --with-mpm=event

如果开启模块支持,需要添加配置:

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

编译

make		

安装

make install			

Apache2.2.32安装完毕,如图10-1所示:

在这里插入图片描述

图10-1 Apache2.2.32安装图解

启动Apache服务,临时关闭selinux、firewalld防火墙:

/usr/local/apache2/bin/apachectl start
setenforce 0
systemctl  stop   firewalld.service

查看Apache服务进程,通过客户端浏览器访问http://192.168.111.131/,如图10-2(a)、10-2(b)所示:

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

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

相关文章

HTML 基础概念:什么是 HTML ? HTML 的构成 与 HTML 基本文档结构

文章目录 什么是 HTML ?HTML 的构成 ?什么是 HTML 元素?HTML 元素的组成部分HTML 元素的特点 HTML 基本文档结构如何打开新建的 HTML 文件代码查看 什么是 HTML ? HTML(超文本标记语言,HyperText Markup L…

【Kafka】Windows+KRaft部署指南

【Kafka】Windows+KRaft部署指南 摘要本地环境说明官网快速开始修改config/kraft/server.properties初始化数据存储目录启动测试创建topic创建生产者创建消费者FAQ输入行太长。命令语法不正确。问题描述解决方案参考资料摘要 Kafka是一种高吞吐量的分布式发布订阅消息系统,它…

阿里云-防火墙设置不当导致ssh无法连接

今天学网络编程的时候,看见有陌生ip连接,所以打开了防火墙禁止除本机之外的其他ip连接: 但是当我再次用ssh的时候,连不上了才发现大事不妙。 折腾了半天,发现阿里云上可以在线向服务器发送命令,所以赶紧把2…

Grafana GreptimeDB 数据源插件上线啦,全面替代 Prometheus 插件

为什么创建 GreptimeDB 数据源插件 此前,用户可以通过 Prometheus 数据源插件,设置连接到 GreptimeDB 来进行 PromQL 查询。 GrpetimeDB 支持了 80% 以上的 PromQL 语法。但是,由于 GreptimeDB 底层使用多值模型,而非 Prometheu…

LabVIEW编程过程中为什么会出现bug?

在LabVIEW编程过程中,Bug的产生往往源自多方面原因。以下从具体的案例角度分析一些常见的Bug成因和调试方法,以便更好地理解和预防这些问题。 ​ 1. 数据流错误 案例:在一个LabVIEW程序中,多个计算节点依赖相同的输入数据&#…

WPF+MVVM案例实战(十八)- 自定义字体图标按钮的封装与实现(ABD类)

文章目录 1、案例效果1、按钮分类2、ABD类按钮实现描述1.文件创建与代码实现2、样式引用与控件封装3、按钮案例演示1、页面实现与文件创建2、运行效果如下3、总结4、源代码获取1、案例效果 1、按钮分类 在WPF开发中,最常见的就是按钮的使用,这里我们总结以下大概的按钮种类,…

01简介——基于全志V3S的Linux开发板教程笔记

声明:本笔记内容为个人在使用自制的基于全志V3S的Linux开发板的学习笔记文章,仅用于记录学习与开发过程中的问题处理过程、方法操作记录、参考的网络资源等内容。 一、前言 一次偶然的机会,发现了全志V3S这款芯片,基于Cortex-A7内…

深度学习常用开源数据集介绍【持续更新】

DIV2K 介绍:DIV2K是一个专为 图像超分辨率(SR) 任务设计的高质量数据集,广泛应用于计算机视觉领域的研究和开发。它包含800张高分辨率(HR)训练图像和100张高分辨率验证图像,每张图像都具有极高…

Spring Boot框架下的信息学科平台系统开发实战

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于保密信息学科平台系统的开发全过程。通过分析基于保密信息学科平台系统管理的不足,创建了一个计算机管理基于保密信息学科平台系统的方案。文章介…

RPC核心实现原理

目录 一、基本原理 二、详细步骤 三、额外考虑因素 RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,也是一种用于实现分布式系统中不同节点之间进行通信和调用的技术。其实现原理主要可以分为以下几个步骤&…

【论文分享】使用可穿戴相机和计算机视觉评估个人在不断变化的环境中的屏幕暴露情况

本次带来一篇sci的全文翻译,该论文主讲如何使用可穿戴相机和计算机视觉评估个人在不断变化的环境中的屏幕暴露情况! 【论文题目】Assessing personal screen exposure with ever-changing contexts using wearable cameras and computer vision 【篇名翻…

从分析Vue实例生命周期开始,剖析Vue页面跳转背后执行过程

文章目录 1.概要2.Vue实例生命周期3.生命周期函数解释4.存在父子组件情况页面执行过程5. 分析路由跳转页面执行过程6.扩展补充7.小结 1.概要 本文旨在分析Vue页面进行路由切换时,Vue背后的运行过程,旨在让大家更加清晰地明白Vue页面运行过程中钩子方法的…

SAP固定资产报废BAPI_ASSET_RETIREMENT_POST的主要参数说明<转载>

原文链接:https://mp.weixin.qq.com/s/bzuK0PUfY7Zb-AoAIeWKiQ SAP固定资产的报废在前台通过tcode ABAVN执行相关业务的操作。 比如如下操作。 事务类型:选择如下,可以根据实际要求选择 填写完成必填相关参数后,最后点击保存即可…

鸿蒙基本组件结构

组件结构 1. 认识基本的组件结构 ArkTS通过装饰器Component 和Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件 自定义组件中提供了一个build函数,开发者需要在函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述…

北航软件算法C4--贪心部分

C4 【写在前面】贪心の食客步骤注意完整代码tip 算法练习赛步骤完整代码 Jade Star步骤完整代码 切钢条步骤tip完整代码【写在后面】 【写在前面】 这学期一直没怎么有时间写blog,一直在赶各种上机和大作业,但是写博客确实能很好的巩固基础,…

Stable Diffusion Web UI 1.9.4常用插件扩展-WD14-tagger

Stable Diffusion Web UI 1.9.4 运行在 WSL 中的 Docker 容器中 tagger 插件的作用是,上传一张图片,反推这张图片可能的提示词。 使用场景就是,想要得到类似的图片内容时使用。 WD14-tagger 安装 Stable Diffusion WebUI WD14-tagger GitH…

如何选择适合的AWS EC2实例类型

在云计算的世界中,Amazon Web Services(AWS)提供了丰富的服务,其中Elastic Compute Cloud(EC2)是最受欢迎的服务之一。选择合适的EC2实例类型对于确保应用程序的性能和成本效益至关重要。我们九河云通过本文…

高效数据集成:聚水潭与金蝶云星空无缝对接的实现

聚水潭数据集成到金蝶云星空:无信息件线上销售退货对接其他入库ok 在企业的日常运营中,数据的高效流转和精准处理至关重要。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将聚水潭的数据无缝对接到金蝶云星空&#xf…

电话语音机器人,是由哪些功能构成?

电话语音机器人是自动电话销售、筛选意向客户的,只要录入好行业话术,导入要拨打的手机号,机器人就可以上岗工作了。 电话语音机器人组成部分: 1、语音识别器,主要作用:识别客户讲话内容,从而做…

捆绑推荐综述:方法、应用与挑战

近年来,捆绑推荐系统因其能够通过推荐一组物品(而非单个物品)来提升用户体验并增加销售额,而在学术界和工业界受到了广泛关注。本综述对捆绑推荐进行了全面回顾,首先提出了一种用于探索产品捆绑的分类方法。我们根据不…