当前位置: 首页 > article >正文

第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.kler.cn/a/388110.html

相关文章:

  • 【AI换装整合包及教程】CatVTON与其他虚拟试衣技术的详细对比
  • ODOO学习笔记(1):ODOO的SWOT分析和技术优势是什么?
  • C# 集合与泛型
  • wordpress搭建主题可配置json
  • DHCP与DNS安全管理
  • Python酷库之旅-第三方库Pandas(208)
  • ChatGPT 新体验:AI 搜索功能与订阅支付指南
  • 加固筑牢安全防线:多源威胁检测响应在企业网络安全运营中的核心作用
  • leetcode 832.翻转图像
  • Vue Router 详细使用步骤:如何在 Vue 项目中配置 Vue Router
  • 世优科技携手人民中科打造AI数字人智能体助力智慧校园
  • Vue vs React:两大前端框架的区别解析
  • Cannot read properties of undefined (reading ‘$isServer‘)
  • [强网杯 2019]随便注 1
  • 解决Mac M芯片 Wireshark 运行rvictl -s 后,出现Starting device failed
  • Java中的I/O模型——BIO、NIO、AIO
  • 华为大变革?仓颉编程语言会代替ArkTS吗?
  • 机器学习系列-----主成分分析(PCA)
  • Redis的内存淘汰机制
  • WPF在MVVM模式下怎么实现导航功能
  • 【SpringBoot】ThreadLocal线程空间上下文使用
  • Linux:版本控制器git的简单使用+gdb/cgdb调试器的使用
  • 【国内中间件厂商排名及四大中间件对比分析】
  • MySQL 程序设计课程复习大纲
  • Spring面向切面编程
  • 第4章 分离数据和指令-Claude开发应用教程