028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Apache服务的工作模式

Apache工作模式介绍

目前主要有三种模式:

event工作模式介绍

event 工作方式

event参数讲解

在httpd-mpm.conf配置文件中,以下是event模块的定义:


StartServers              3
MinSpareThreads              75
MaxSpareThreads             250
ThreadsPerChild              25
MaxRequestWorkers           400
MaxConnectionsPerChild       0
参数说明
StartServers 服务启动时初始的进程数,默认3
MinSpareThreads 最小的空闲子进程数,默认75
MaxSpareThreads 最大的空闲子进程数,默认250
ThreadsPerChild 每个子进程产生的线程数量,默认是25
MaxRequestWorkers 限定同一时间内客户端最大接入的请求数量,默认是400
MaxConnectionsPerChild 每个子进程在其生命周期内允许最大的请求数量,如果请求总数已经达到这个数值,子进程将会结束,如果设置为0,子进程将永远不会结束。将该值设置为非0值,可以防止运行PHP导致的内存泄露

prefork工作模式介绍

prefork工作模方式

prefork参数讲解

在httpd-mpm.conf配置文件中,以下是prefork模块的定义


StartServers              20
MinSpareServers          10
MaxSpareServers         50
MaxClients              150
MaxRequestsPerChild  0
参数说明
ServerLimit 最大进程数
StartServers 启动的时候创建的进程数量
MinSpareServers 最少空闲进程
MaxSpareServers 最多空闲进程
MaxClients 最多创建多少个子进程用来处理请求
MaxRequestsPerChild 每个进程处理的最大请求数,达到请求数,进程即被销毁,如果设置为0,子进程永远不会结束

worker工作模式介绍

worker工作方式

worker参数讲解

在httpd-mpm.conf配置文件中,以下是worker模块的定义


ServerLimit             40
ThreadLimit             200
StartServers              20
MaxClients             1000
MinSpareThreads        25
MaxSpareThreads       100
ThreadsPerChild       200
MaxRequestsPerChild   1000
参数说明
ServerLimit 最大进程数,默认值是"16"
ThreadLimit 每个子进程的最大线程数,默认值是“64”
StartServers 服务器启动时建立的子进程数,默认值是"3"
MaxClients 允许同时接受的最大接入请求数量(最大线程数量)
MinSpareThreads 最小空闲线程数,默认值是"75"
MaxSpareThreads 设置最大空闲线程数。默认值是"250"
ThreadsPerChild 每个子进程建立的常驻的执行线程数。默认值是25
MaxRequestsPerChild 设置每个子进程在其生存期内允许伺服的最大请求数量。 设置为"0",子进程将永远不会结束

Apache目录属性

参数作用
Options 设置在特定目录使用哪些特性
AllowOverride 允许存在于.htaccess文件中的指令类型
Require 设置目录的访问控制
Indexes 当用户访问该目录时,但没有指定要访问哪个文件,而且目录下不存在默认网页时,返回目录中的文件和子目录列表
MultiViews 内容协商的多重视图,Apache的一 个智能特性。当访问目录中不存在的对象时
ExecCGl 允许在该目录下执行CGI脚本
FollowSymLinks 在该目录下允许文件系统使用符号连接
Includes 允许服务器端包含功能
IncludesNoExec 允许服务器端包含功能,但禁止执行CGI脚本
All 包含除了MultiViews之外所有特性,如果没有Options语句,默认为All

手工编译安装Apache服务:

(1)安装DNS服务的软件包bind。

[root@localhost ~]# yum install bind -y
......//省略安装过程
[root@localhost ~]#

(2)对DNS服务的主配置文件进行修改。

[root@localhost ~]# vim /etc/named.conf

options {
        listen-on port 53 { any; };                   //127.0.0.1改为any
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };               //localhost改为any

(3)对DNS服务的区域配置文件进行修改。

[root@localhost ~]# vim /etc/named.rfc1912.zones

zone "abc.com" IN {                                 //添加一个域名信息
        type master;
        file "abc.com.zone";
        allow-update { none; };
};

(4)查看一下IP地址。

[root@localhost named]# ifconfig 
ens33: flags=4163  mtu 1500
        inet 192.168.52.133  netmask 255.255.255.0  broadcast 192.168.52.255
        inet6 fe80::3e1d:31ba:f66a:6f80  prefixlen 64  scopeid 0x20
        ether 00:0c:29:27:1c:3f  txqueuelen 1000  (Ethernet)
        RX packets 14532  bytes 20210558 (19.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6054  bytes 399142 (389.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(5)保留权限复制一份DNS服务的区域数据配置文件,进行修改。

[root@localhost ~]# cd /var/named/          //切换目录
[root@localhost named]# ls                        //查看
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@localhost named]# cp -p named.localhost abc.com.zone    //复制
[root@localhost named]# vim abc.com.zone 

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.52.133             //添加IPv4的域名解析

(6)开启named服务。

[root@localhost named]# systemctl start named      //开启服务
[root@localhost named]# systemctl stop firewalld.service      //关闭防火墙
[root@localhost named]# setenforce 0         //关闭增强性安全功能
[root@localhost named]# 

(7)在宿主机将我们所需的工具包共享出去。

Apache服务的工作模式

(8)通过Samba服务将工具包挂载到Linux系统。

[root@localhost ~]# smbclient -L //192.168.100.50/   //查看共享
Enter SAMBA\root's password:      //匿名共享,没有密码,直接回车
OS=[Windows 10 Enterprise LTSC 2019 17763] Server=[Windows 10 Enterprise LTSC 2019 6.3]

    Sharename       Type      Comment
    ---------       ----      -------
    IPC$            IPC       远程 IPC
    share           Disk      
    tools           Disk      
    Users           Disk      
Connection to 192.168.100.50 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available
[root@localhost ~]# mkdir /mnt/tools    //创建挂载目录
[root@localhost ~]# mount.cifs //192.168.100.50/tools /mnt/tools/     //挂载
Password for root@//192.168.100.50/tools:  
[root@localhost ~]# cd /mnt/tools/    //进入挂载目录
[root@localhost tools]# ls     //查看
awstats-7.6.tar.gz                extundelete-0.2.4.tar.bz2  forbid.png                 jdk-8u191-windows-x64.zip  LAMP-C7
cronolog-1.6.2-14.el7.x86_64.rpm  fiddler.exe                intellijideahahau2018.rar  john-1.8.0.tar.gz          picture.jpg
[root@localhost tools]# 

(9)将源码编译安装Apache服务的压缩包解压到“/opt/”目录。

[root@localhost tools]# cd LAMP-C7/       //切换目录
[root@localhost LAMP-C7]# ls
apr-1.6.2.tar.gz       Discuz_X2.5_SC_UTF8.zip  LAMP-php5.6.txt      php-5.6.11.tar.bz2
apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2     MySQL-5.6.26.tar.gz
[root@localhost LAMP-C7]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/     //解压
......//省略解压详情
[root@localhost LAMP-C7]# tar zxvf apr-1.6.2.tar.gz -C /opt/           //解压
......//省略解压详情
[root@localhost LAMP-C7]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/     //解压
......//省略解压详情

(10)进入“/opt/”目录,将两个apr包移动到“httpd-2.4.29/srclib/”目录,并重命名。

[root@localhost LAMP-C7]# cd /opt/    
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util

(11)进入“httpd-2.4.29/”目录,然后安装编译所需环境包。

[root@localhost opt]# ls
httpd-2.4.29  rh
[root@localhost opt]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ls
ABOUT_APACHE     ap.d          CHANGES         docs         httpd.spec      libhttpd.dep  Makefile.win   README            srclib
acinclude.m4     build         CMakeLists.txt  emacs-style  include         libhttpd.dsp  modules        README.cmake      support
Apache-apr2.dsw  BuildAll.dsp  config.layout   httpd.dep    INSTALL         libhttpd.mak  NOTICE         README.platforms  test
Apache.dsw       BuildBin.dsp  configure       httpd.dsp    InstallBin.dsp  LICENSE       NWGNUmakefile  ROADMAP           VERSIONING
apache_probes.d  buildconf     configure.in    httpd.mak    LAYOUT          Makefile.in   os             server
[root@localhost httpd-2.4.29]# 
[root@localhost httpd-2.4.29]# yum -y install \
> gcc \
> gcc-c++ \
> make \
> pcre \
> pcre-devel \
> expat-devel \
> zlib-devel \
> perl
......//省略安装过程

(12)进行对Apache服务器的配置。

[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \    //安装路径
> --enable-so \     //启用动态加载模块支持
> --enable-rewrite \     //启用网页地址重写功能
> --enable-charset-lite \    //启用字符集支持
> --enable-cgi    //启用CGI脚本程序支持

(13)编译安装Apache服务。

[root@localhost httpd-2.4.29]# make && make install
......//省略编译安装过程
[root@localhost httpd-2.4.29]#

(14)对Apache服务配置文件进行修改

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf     //创建软链接,方便使用
[root@localhost httpd-2.4.29]# 

Listen 192.168.50.133:80    //开启IPv4监听
#Listen 80      //注释IPv6监听
#
ServerName www.abc.com:80      //设置域名

Apache工作模式实验

(1)开启工作模式的子配置文件。

[root@localhost httpd-2.4.29]#  vim /etc/httpd.conf

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf              //删除“#”

(2)查看当前的工作模式,为event模式(默认)。

[root@localhost httpd-2.4.29]# httpd -l
Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c
[root@localhost httpd-2.4.29]#

(3)查看当前工作模式,开启的进程数。

[root@localhost httpd-2.4.29]# service httpd stop     //关闭服务
[root@localhost httpd-2.4.29]# service httpd start     //开启服务
[root@localhost httpd-2.4.29]# lsof -i :80    //查看端口进程
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   91399   root    3u  IPv4 266957      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   91401 daemon    3u  IPv4 266957      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   91402 daemon    3u  IPv4 266957      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   91403 daemon    3u  IPv4 266957      0t0  TCP localhost.localdomain:http (LISTEN)
[root@localhost httpd-2.4.29]#

(4)修改一下event工作模式的配置,将StartServers从“3”改为“5”,对其它各项进行相应优化。

[root@localhost httpd-2.4.29]# cd /usr/local/httpd/conf/extra/
[root@localhost extra]# ls
httpd-autoindex.conf  httpd-default.conf  httpd-languages.conf  httpd-mpm.conf                 httpd-ssl.conf      httpd-vhosts.conf
httpd-dav.conf        httpd-info.conf     httpd-manual.conf     httpd-multilang-errordoc.conf  httpd-userdir.conf  proxy-html.conf
[root@localhost extra]# vim httpd-mpm.conf 


    StartServers             5
    MinSpareThreads         150
    MaxSpareThreads        400
    ThreadsPerChild         30
    MaxRequestWorkers      390
    MaxConnectionsPerChild   0

(5)重启服务,再次查看端口进程数,子进程从3个,变成5个了。

[root@localhost extra]# service httpd stop 
[root@localhost extra]# service httpd start 
[root@localhost extra]# lsof -i :80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   92896   root    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   92898 daemon    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   92899 daemon    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   92900 daemon    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   92901 daemon    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
httpd   92902 daemon    3u  IPv4 270648      0t0  TCP localhost.localdomain:http (LISTEN)
[root@localhost extra]# 

网页标题:Apache服务的工作模式
文章URL:http://www.tsicrk.com/article/gpsojd.html

其他资讯

让你的专属顾问为你服务

3.0829s