首页 > 系统相关 >Linux apache的常见配置(2)功能模块管理

Linux apache的常见配置(2)功能模块管理

时间:2022-10-12 23:25:45浏览次数:51  
标签:prefork MPM httpd mpm worker 功能模块 模块 Linux apache

说明:apache是一个模块化的软件,很多功能由一个个模块来提供的。

动态加载模块:DSO (Dynamic Shared Object)

Dynamic Shared Object,动态共享对象,加载动态模块配置,不需重启即生效

动态模块所在路径:
/usr/lib64/httpd/modules/
查看目前在apache中加载的模块:
httpd -M
管理模块:LoadModule指令

通过模块加载的配置文件结合LoadModule指令进行管理。

模块配置文件路径:/etc/httpd/conf.modules.d/

在00-base.conf的配置文件中注释或者添加loadModule指令来实现模块的加载和不加载
查看静态编译的模块:httpd -l

静态模块:编译的时候启用的模块功能,如果想换只能重新编译。

apache的多路处理模块(MPM)管理

httpd 支持三种MPM工作模式:prefork, worker, event

例如:查看默认使用的mpm工作模式:

[root@CentOS8 ~]# httpd -M | grep mpm
 mpm_event_module (shared)

 [root@centos7 ~]# httpd -M |grep mpm
message
 mpm_prefork_module (shared)
更改使用的MPM工作模式:

修改mpm的模块配置文件实现:

/etc/httpd/conf.modules.d/00-mpm.conf这个配置文件修改

范例:修改CentOS 8使用 prefork 模型

[root@CentOS8 ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf 
[root@CentOS8 ~]# cat /etc/httpd/conf.modules.d/00-mpm.conf
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines.  See the httpd.conf(5) man
# page for more information on changing the MPM.

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #取消这行的注释

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so  #如果切换为worker就取消这行注释

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so #默认是event模式

[root@CentOS8 ~]# httpd -M | grep prefork #已经动态切换为prefork模式
 mpm_prefork_module (shared)

#通过源码安装的直接就在主配置文件中进行开启或关闭

说明:不能同时开启多个MPM模块

MPM三种工作模式的配置
  • prefork 模式相关的配置
StartServers       100  #指定刚开启服务时开启的子进程

MinSpareServers   50  #最少预留的空闲进程

MaxSpareServers   80 #最多预留的空闲进程

ServerLimit     2560 #最多进程数,最大值 20000

MaxRequestWorkers    2560 #最大的并发连接数,默认256

MaxConnectionsPerChild  4000 #子进程最多能处理的请求数量。在处理MaxRequestsPerChild 个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放(为0时永远不释放)

MaxRequestsPerChild 4000  #从 httpd.2.3.9开始被MaxConnectionsPerChild代替
  • worker和event 模式相关的配置
ServerLimit         16  #最多开启的子进程  最多worker进程数 Upper limit on configurable number of processes

StartServers        10  #服务启动时开启多少个子进程

MaxRequestWorkers  150  #最大连接数(最多并发多少个连接)

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25  #每个子进程开多少个线程

标签:prefork,MPM,httpd,mpm,worker,功能模块,模块,Linux,apache
From: https://www.cnblogs.com/heyongshen/p/16786487.html

相关文章

  • Linux apache服务的常见配置(1)
    apache服务的配置文件组成:全局变量主服务器配置虚拟主机配置:apache服务的配分文件格式:directivevalue#directive不区分字符大小写#value为路径时,是......
  • Linux基础
    1.目录结构介绍基本介绍LIunx的文件系统是采用层式的树状目录结构,在此结构中的是最上层是根目录/,然后在次目录下在创建其他目录。在Liunx世界里,一切皆为文件树状目......
  • 【Vegas原创】DG Build(Linux版)
    例:新建oratest的DGDB:10.91.50.31DG:10.91.50.6DG:1,建立相应的文件夹:mkdir/u01//admin/bdump****mkdir/u01//oradata/DB:1,查logfile,controlfile路径,看是否在以上......
  • 安装apache之playbook
    ----name:installhttpdhosts:allvars:dir:/usr/local/srcinstall_dir:/apps/httpdhttpd_ver:httpd-2.4.54httpd_url:https://mirrors.tuna.tsi......
  • Linux安装nginx
    1.进入nginx官网下载页面,下载Linux所需的压缩包文件。http://nginx.org/en/download.html   2.在安装nginx之前需要安装pcre,gcc,openssl,zlib。因为nginx依赖这......
  • Linux下编写mystat
    Linux下编写mystat1.学习stat(1)在Linux下通过manstat命令查看stat(1)的详细信息我们可以了解到,stat()函数的功能是打印文件的状态(inode内容)语法stat[OPTION]......
  • Linux进程
    一、程序的定义1.1、程序的特点是计算机中能够识别执行的指令,运行在计算机当中,以满足用户的需求。描述进程完成的情况,是用来控制进程的。二、进程的定义2.1、进程的特......
  • Linux环境下的块设备驱动原理及编程方法
    1.前提知识一个块驱动提供对块存储设备(比如SD卡、EMMC、NANDFlash、NorFlash、SPIFlash、机械硬盘、固态硬盘等)以固定大小(块的大小由内核决定,常常是4096字节)的块......
  • linux的内核bug引起线程挂起
    linux内核bug,引起mysql主从复制的从服务器始终处于Queueingmastereventtotherelaylog状态,用pstack跟踪mysql进程id后,线程得到释放.同时该bug也会将kafka的线程挂......
  • linux 卸载bypy
       背景:需要在linux上面使用bypy,bypy由于只能绑定一个百度网盘,如果linux上面已经安装bypy,绑定了别人的网盘,需要先卸载,再安装绑定自己的百度网盘,(个人觉得应该有对应......