万维网(world wide web,WWW)服务器,也称之为Web服务器,主要功能是提供网上信息浏览服务。WWW是Internet的多媒体信息查询工具,是Internet上飞快发展的服务,也是目前应用最广泛的服务。这是因为有了WWW软件,才使得近年来Internet迅速发展。
目前主流的Web服务器软件包括Apache,Nginx,Lighttpd,IIS,Resin,Tomcat,WebLogic,Jetty等。
本章向大家介绍Apache服务器发展历史,Apache工作模式深入剖析,Apache虚拟主机,配置文件详解及Apache rewrite企业实战等内容。
1.1 Apache Web服务器入门简介
Apache HTTP server是Apache软件基金会的一个开源的网页服务器,可以运行在几乎所有管饭使用的计算机平台上,由于其跨平台和安全性被广泛使用,是目前最流行的Web服务器软件之一。
Apache服务器是一个多模块化的服务器,经过多次修改,成为目前世界使用排名第一的Web服务器软件。Apache取自“a patchy server”的读音,即充满补丁的服务器,因为Apache基于GPL发布,大量开发者不断为Apache贡献新的代码,功能,新的特性,修改原来的缺陷。
Apache服务器的特点是使用简单,速度快,性能稳定,可以作为负载均衡及代理服务器来使用。
1.2 Prefork MPM工作原理
每辆汽车都有发动机引擎,不同的引擎,对车子运行效率也不一样,同样Apache也有类似工作引擎或者处理请求的模块,称之为多路处理模块(multi-processing modules,MPM),Apache Web服务器有三种处理模块,Prefork MPM,Worker MPM,Event MPM。
在企业中Apache最长用的处理模块为Prefork MPM和Worker MPM。Event MPM不支持HTTPS方式,官网也给出“This MPM is experimental,so it may or may not work as expected”的提示,所以Event MPM很少被使用。
默认Apache处理模块为Prefork MPM方式,Prefork PMP采用的预派生子进程方式,Prefork用单独的紫禁城来处理不同的请求,进程之间是彼此独立的,所以比较稳定。
Prefork MPM的工作原理:控制进程Master在最初建立“StartServers”个进程后,为了满足MinSpareServers设置的最小空闲进程,所以需创建第一个空闲进程,等待一秒钟,继续创建两个,在等一秒钟,继续创建四个,依次安装递增指数级创建进程数,最多每秒同时创建32个空闲进程,知道满足至少有MinSpareServers设置的值为止。
Apache的预派生模式(Prefork),基于预派生模式不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能,不过由于Prefork MPM引擎是基于多进程方式提供对外服务,每个进程占内存也相对较高。
1.3 Worker MPM 工作原理
相对于Prefork MPM,Worker方式是2.0版中全新的支持多线程和多进程混合模型的MPM,由于使用线程来处理,所以可以处理海量的HTTP请求,而系统资源的开销要小于基于Prefork多进程的方。Worker也是基于多进程,但每个进程又生成多个线程,这样可以保证多线程可以获得进程的稳定性。
Worker MPM的工作原理:控制进程Master在最初建立“StartServers”个进程,每个进程会创建ThreadsPerChild设置的线程数,多个线程共享该进程内存空间,同时每个线程独立的处理用户的HTTP请求。为了不再请求到来时在生成线程,Worker MPM也可以设置最大最小空闲线程。
Worker MPM模式下同时处理的请求总数=进程总数*ThreadsPerChild,也即等于MaxClients。如果服务器负载很高,当前进程数不满足需求,Master控制进程会Fork新的进程,最大进程数不能超过ServerLimit数,如果需要调整的StartServers进程数,需同时调整ServerLimit值。
Prefork MPM与Worker MPM引擎区别总结如下:
- Prefork MPM模式:使用多个进程,每个进程只有一个线程,每个进程在某个确定的时间只能维持一个连接,有点是稳定,但内存开销较高。
- Worker MPM模式:使用多个进程,每个进程包含多个线程,每个线程在某个确定的时间只能位置一个连接,内存占用量比较小,适合大并发,高流量的Web服务器。Worker MPM缺点是一个线程崩溃,整个进程就会连同其任何线程一起挂点。
1.4 Apache Web服务器安装
从Apache官方分站点下载目前稳定版本的httpd-2.2.17版本,目前最新版本为2.4版本,下载地址如下:http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.46.tar.bz2
Apache Web服务器安装步骤详解如下:
[root&#