首页 > Web开发 > 详细

apache服务

时间:2019-11-14 13:40:46      阅读:77      评论:0      收藏:0      [点我收藏+]

一:httpd-2,.4新增的模块

1,mod_proxy_fcgi(可以提供fcgi代理)。

2,mod_ratelimit(限制用户带宽)

3,mod_request(请求模块,对请求过滤)

4,mod_remoteip(匹配客户端IP地址)

二:特性

1,MPM支持在运行时装载,不过在编译安装是要启用--enable-mpms-shared=all  --with-mpm=event

2,支持event

3,支持异步读写

4,在每个模块和每个目录上指定日志级别

5,基于FQDN的虚拟主机不再需要NameVirtualHost的指令

6,支持使用自定义变量

三:安装时所需源码包

1,apr:对操作系统调用的抽象库,用来实现Apache内部组件对操作系统的使用,提高系统的可移植性

2,zlib,pcre,openssl

四,常见参数

--enable-so :支持动态共享模块。--enable-rewrite:支持url重写。--enable-CGI:启用cgi 。--with-mpms-shared=all:启用MPM所有支持模块,这样event,worker和prefork就可以模块化的安装

五:Apache的工作模式(MPM多进程处理模块,也叫工作模式)

1,prefork模式(非线程)

工作方式:Apache服务启动之后,mpm_prefork会预先创建多个子进程(默认5个)每个进程只有一个线程,当接收到客户端的请求之后,mpm_prefork模块将其交给子进程进行处理。由于,prefork模块是独立处理单个的对应请求。所以在效率上要高于work模式,但是同时占用内存也比较多,不适用高并发的处理场景

访问http很慢的原因:MaxRequestWorkers(最大连接数),用户请求数量超过了最大连接数。那么这个数值是不是越大越好呢?不是,应该根据负载情况进行动态调整。比如4G内存机器,初始值应该是4000/2=2000(单位MB)

2,work模式(多进程+多线程)

work模式使用的是多进程多线程的混合模式,在同一时间可以独立的处理多个请求并且互不干涉。即使某一部分出现了问题,影响Apache性能的也是某一部分而并非整个进程。prefork处理请求速度要高于worker,但同时它消耗的资源和cpu内存页多余worker

3,event模式

event模式可以说是worker模式的变种,它把服务器进程从连接当中分离出来。主要解决keep-alive长连接被持久占用造成的资源浪费。在event模式当中会有专门的模块管理keep-alive类型的线程,当真实请求发送过来后,它会将其转发给线程让其处理,执行完毕之后,又将他进行释放,增强了在高并发下处理请求。

缺点:不能良好的支持https访问,涉及http认证相关的问题

六:进程和线程的区别

线程是进程内的一个执行单元,也是进程内的可以调度的实体

区别:1,地址空间:一个进程内至少包括一个线程,线程共享进程的地址空间,而进程有自己的独立地址空间

   2,资源拥有:进程是资源分配和拥有的单位,而同一个进程内的线程只能共享进程的资源

   3,线程是处理器的调度单位,但是进程不是

七:Apache的配置参数

1,keepalive   On/off

keepalive指的是保持连接活跃。如果将keepalive设置为On,那么来自同一客户端的请求就不需要在一次连接,为了避免每次请求都要新建一个连接而加重服务器的负担,一般情况之下,可以将图片较多的网站设置为On

2,keepaliveTimeout   Number

连接超时时间一般在3-5秒。超过这个时间,连接自动断开。

3,MaxKeepAliveRequest 100 

一次性可以进行http请求的最大请求次数,

4,MPM这个是影响关键并发效率的主要因素

(1)startservers   10 

服务器启动时建立的子进程数量,因为子进程数量动态取决于负载的轻重。所以,一般没有必要去调整这个参数

(2)Minspareserver 10 

设置空间子进程的最小数量,一般不调整此参数,除非是负载特别大

(3)MaxSpareThreads  75 

设置空闲子进程的最大数量,如果超过这个参数,父进程则会杀死多余的子进程

(4)serverlimit   2000

进程数上限,修改完这个指令必须完全停止服务器重新启动才能生效

(5)MaxClients/Maxrequestworkers    256

用于客户端请求的最大请求数量和最大进程数量,任何超过Maxclients限制请求都将进入等候队列,默认是256

八:Apache的优化

(1)开启Gzip优化功能:可以极大的加速网站,有时压缩比例高于80%,最少也有40%

设置完压缩比例,虽然会有很高的压缩率。但是,它会占用很多的CPU资源

(2)配置mod_expires模块

可以减少20-30%左右的请求重复,将重复的用户对指定的页面请求缓存在本地,不想服务器发出请求

九:Apache为什么要日志切割

随着网站访问的数据越来越大,webserver(web服务器)产生的日志文件也会越来越大。会占用过多资源,一次性删除过大的文件也会丢失你很多信息。因为这些日志都是用来进行分析,网络安全监察和网络运行状况监控等。

方法1:使用rotatelogs(Apache自带)隔一天记录一个日志

编辑Apache的主配置文件。注释掉ErrorLogs  customlog/access_log common后,添加

ErrorLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined
即可,一天86400秒
方法2:使用cronlog程序
在主配置文件当中添加
ErrorLog "|/usr/local/sbin/cronolog logs/error-%Y%m%d.log"
CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d.log" combined
十:配置防盗链
利用Apache的rewrite模块

十一:fcgi模块编写安装LAMP+xcache

1,php的工作模式

在lamp环境下php的工作模式有:cgi模式,Apache模式,fastcgi模式,

cgi模式下运行php性能并不是很好。fastcgi方式php是一处独立的进程。所有php子进程都是由php的组件php-fpm负责

十二:压力测试

1,ad原理:ad命令会创建多个并发访问线程,模拟多个访问者在同一时间对某个url地址进行访问。占用内存和cpu并不是很高同时也可以测试nginx ,tomcat ,lls等

2,ad测试的性能指标

(1)吞吐量:服务器在高并发下处理能力,在某个单温时间内处理的最大请求数(吞吐率和并发用户数相关,不同的并发用户数,吞吐率一般不同)

(2)并发连接数:并发连接数指的是某个时刻服务器所接受的请求数目,也就是会话

(3)并发用户数:在一个用户在某一时间下可以产生多个会话,也叫连接数

(4)用户平均请求等待时间:公式,处理完成所有请求数所花费的时间/(总请求数/并发用户数)

(5)服务器平均请求等待时间:公式,处理完成所有请求数所花费时间/总请求数 

apache服务

原文:https://www.cnblogs.com/mayaohui/p/11856248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!