Apache深入优化
一、ab压力测试工具
1、ab压力测试工具概述
Apache附带的压力测试工具ab,非常容易使用,并且完全可以模拟各种条件对Web服务器发起测试请求。
ab可以直接再Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为它不包括数据的网络传输时间以及用户PC本地的计算机时间,从而可以通过观察各种时间标准判断Web服务器的性能,以便进行参数的优化调整。在进行性能调整优化过程中,可用ab压力测试工具进行优化效果的测试。
2、ab压力测试使用的注意事项
·优化前先使用ab进行压力测试
·优化后,重启服务,再使用ab进行压力测试
·对比两次测试的结果,看优化效果是否明显
·为了能更客观的评价Web服务的性能,一般优化前后都要运用4种以上测试工具进行多次测试,取测试结果的评价值进行对比
3、格式:ab -nN1 -cN2 网站网址
-n 请求数总和
-c 并发用户数
二、Apache工作模式概述
Apache作为现今Web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多种,源码包安装httpd时可查看httpd-mpm.conf文件,该文件位于extra/conf目录中。
目前主要有两种模式:prefork模式和worker模式。
三、prefork工作模式
1、prefork工作模式概述
prefork是一个多路处理模块(MPM),实现了一个进程型的、预派生的Web服务器,适合于没有线程安全库、需要避免线程兼容性问题的系统。
在要求每个请求相互独立的情况下具有很好的特性,若一个请求出现问题不会影响到其他请求。具有很强的自我调节能力,只需要很少的配置指令进行调整就可以适合于企业应用要求。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以避免所需要的内存超出物理内存的大小。
2、工作方式
一个单独的控制进程(父进程)负责产生子进程,子进程用于监听请求并作出应答,因此在内存中会一直存在一些备用的(spare)或是空闲的子进程用于相应新的请求,可加快相应速度。
父进程通常以root身份运行,以绑定80端口,子进程通常以一个低特权的用户运行,可通过配置项的User和Group配置。运行子进程的用户必须要对网站内容有读取权限,但是对其他资源必须拥有尽可能少的权限,以保证系统安全。
四、worker工作模式
1、worker工作模式概述
work也是多路处理模块(MPM),使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。
控制该MPM的最重要的指令是:控制每个子进程允许建立的线程数ThreadsPerChild指令和控制允许建立的总线程数的MaxClients指令。
prefork模式与worker模式的对比
2、工作方式
每个进程能够拥有的线程数量是固定的,服务器会根据负载情况增加或减少进程数量。一个单独的控制进程(父进程)负责子进程的建立。每个子进程能够建立ThreadsPerChild数量的服务线程和一个监听线程,监听线程监听接入请求并将其传递给服务线程处理和应答。
Apache总是会维持一个备用(spare)或是空闲的服务线程池,客户端无需等待新的线程或进程的建立即可得到服务。
父进程一般都是以root身份启动,以绑定80端口;随后,Apache以较低权限的用户建立子进程和线程。User和Group指令用于配置Apache子进程的运行用户。子进程要对网页内容拥有读权限,但应该尽可能限制权限。
四、Apache目录属性
在Apache的配置文件中,对每一个目录都会有相关属性的设置。目录的权限设置使用 和 这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体的设置目录权限语句,这些语句仅对被设置的目录及其子目录起作用。
1、Options:用于定义目录使用那些特性
Indexes 当客户仅指定要访问的目录,但没有指定要访问哪个文件,而且目录下不存在默认网页时,返回目录中的文件和子目录列表
五、简单配置Apache深入优化
拓扑图:
推荐步骤:
1、在 Centos01 安装 Apache 服务,配置 Apache 服务设置网站主页
2、在 Centos02 配置 DNS 服务器使用 www.huhu.com
3、在 Centos01 配置 Apache 优化 prefork 和 worker 工作模式配置压力测试验证
实验步骤:
一、在 Centos01 安装 Apache 服务,在 Centos02 配置DNS 服务器使用域名www.huhu.com
1、在 Centos01 上安装 apache 服务配置网站
1)切换云计算光盘
2)挂载光盘解压源代码程序
3)配置安装 apache
4)编译安装 Apache
2、配置 Apache 服务
1)生成服务控制文件添加执行权限
2)修改服务控制文件
3)添加系统服务设置开机自动启动
4)优化 apache 命令
3、启动 apache 服务查看服务运行状态
1)启动服务
2)查看服务运行状态
4、修改 apache 网站根目录设置网站主页
1)创建网站根目录设置主页
2)修改 apache 主配置文件
3)检查主配置文件
4)重新启动 apache 配置文件加载配置
二、在 Centos02 上安装 DNS 使用域名访问日志
1、安装 DNS 服务设置开机自动启动
1)切换到系统光盘
2)挂载系统光盘安装 DNS 服务
3)安装 DNS 服务
4)设置服务开机自动启动
2、修改主配置文件和区域配置文件
1)修改 DNS 主配置文件
2)检查主配置文件是否错误
3)修改区域配置配置文件
4)检查区域配置文件是否错误
3、启动 DNS 服务查看服务运行状态
1)启动 DNS 服务
2)查看服务运行状态
4、 配置验证 DNS 访问网站
1)客户端配置 IP 地址
2)配置域名解析
3)访问网站
三、在 Centos01 配置 apache 工作模式优化
1、管理 Apache 的 prefork 工作模式
1)查看 Apache 默认的 prefork 工作模式
2)优化 prefork 工作模式
3)查看 prefork 的进程信息
2、管理 Apache 的 worker 工作模式
1)修改 apache 的工作模式为 worker
2)安装 apache
3)查看修改后的工作模式
4)修改 Apache 主配置文件加载 worker 配置
5)修改 Apache 工作模式配置文件
6)检查配置是否错误
7)重新启动服务
8)使用 pstree 查看线程数-a 详细信息
3、配置使用 ab 压力测试
1)压力测试
2)查看进程和线程数