Apache的配置及故障排除

Apache

也叫www服务器,http服务器
http:超文本传输协议

功能

给用户提供网页服务

Apache的三种工作模式

Web服务器Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式。

它们分别是prefork,worker和event,它们同时也代表这Apache的演变和发展。

Apache httpd 能更好的为有特殊要求的站点定制。
例如,要求 更高伸缩性的站点可以选择使用线程的 MPM,即 worker 或 event; 需要可靠性或者与旧软件兼容的站点可以使用 prefork。

模式切换

选择需要模式,去掉前边的注释符"#",模式的参数设置在模式下输入即可.

[root@apache /etc/httpd/conf.modules.d]# vim 00-mpm.conf

Prefork 进程模式

在这里插入图片描述

如何配置在Apache的配置文件httpd.conf的配置方式:
<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   1000
</IfModule>

StartServers

# 服务器启动时建立的子进程数量,prefork默认是5,

MinSpareServers

# 空闲子进程的最小数量,默认5;如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。此参数不要设的太大。

MaxSpareServers

#空闲子进程的最大数量,默认10;如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程会杀死多余的子进程。此参数也不需要设置太大,如果你将其设置比MinSpareServers 小,Apache会自动将其修改为MinSpareServers +1的数量。

MaxRequestWorkers

#限定服务器同一时间内客户端最大接入的请求数量,默认是256;任何超过了MaxRequestWorkers限制的请求都要进入等待队列,一旦一个个连接被释放,队列中的请求才将得到服务,如果要增大这个数值,必须先增大ServerLimit。在Apache2.3.1版本之前这参数MaxRequestWorkers被称为MaxClients。

MaxConnectionsPerChild

#每个子进程在其生命周期内允许最大的请求数量,如果请求总数已经达到这个数值,子进程将会结束,如果设置为0,子进程将永远不会结束。在Apache2.3.9之前称之为MaxRequestsPerChild。

这里建议设置为非零,注意原因:

1).能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2).给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量(重生的机会)。

work 模式:

在这里插入图片描述

如何配置在Apache的配置文件httpd.conf的配置方式:
<IfModule mpm_worker_module>
    StartServers             3
ServerLimit 16
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   1000
</IfModule>

StartServers

#服务器启动时建立的子进程数量,在workers模式下默认是3.

ServerLimit

#系统配置的最大进程数量

MinSpareThreads

#空闲子进程的最小数量,默认75

MaxSpareThreads

#空闲子进程的最大数量,默认250

ThreadsPerChild

#每个子进程产生的线程数量,默认是64

MaxRequestWorkers /MaxClients

#限定服务器同一时间内客户端最大接入的请求数量.

MaxConnectionsPerChild

#每个子进程在其生命周期内允许最大的请求数量,如果请求总数已经达到这个数值,子进程将会结束,如果设置为0,子进程将永远不会结束。在Apache2.3.9之前称之为MaxRequestsPerChild。

这里建议设置为非零,注意原因:

1).能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2).给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量(重生的机会)。

Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxRequestWorkers。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时 也需要显式声明ServerLimit(最大值是20000)。需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxRequestWorkers,而且MaxRequestWorkers必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值。

event 模式:

在这里插入图片描述

如何配置在Apache的配置文件httpd.conf的配置方式:
<IfModule mpm_event_module>
    StartServers             3
ServerLimit 16
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   1000
</IfModule>

配置文件路径

/etc/httpd/conf/httpd.conf

端口和协议号

TCP 80

安装

yum install httpd -y

编译安装

在configure配置编译参数的时候,可以使用 --with-mpm=prefork|worker|event 来指定编译为那一种MPM,当然也可以用编译为三种都支持:–enable-mpms-shared=all,这样在编译的时候会在modules目录下自动编译出三个MPM文件的so,然后通过修改httpd.conf配置文件更改MPM

启动服务

systemctl restart httpd
systemctl enable httpd

配置文件的设置参考

apache的早期版本2.0默认prefork,2.2版本是worker,2.4版本是event.

查看Apache版本

[root@apache ~]# httpd -V
Server version: Apache/2.4.6 (CentOS)
Server built:   Aug  8 2019 11:41:18
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值