美文网首页
Httpd服务实战

Httpd服务实战

作者: 4e8ea348373f | 来源:发表于2020-06-27 19:09 被阅读0次

HTTPD服务

基础知识:

  1. 有base源提供,可以直接使用yum 安装
  2. centos6 提供的是2.2版本(停止维护) / centos7 提供的2.4的版本
  3. 2.4的版本和2.2的版本有了很大的不同

HTTPD特性

  • 高度模块化: core + modules

  • DSO:dynamic shared object

  • MPM: Multipath processing Modules

    • prefork: 多进程模型,预先fork几个子进程
      • 一个主进程:负责生成和回收子进程,负责创建套接字,负责接受请求并将其派发给对应的子进程处理
      • n个子进程:每个子进程负责处理一个请求
      • 工作模型: 会预先创建几个空闲进程,随时等待用户请求,最大空闲和最小空闲
    • worker: 多线程模型,每个线程处理一个请求
      • 一个主进程:负责生成子进程,负责创建套接字,并将请求派发给某个子进程处理
      • m个子进程:每个子进程负责产生n个线程
      • 每个线程:负责响应用户的请求
      • 并发响应数目:m*n
    • event:事件驱动模型,多进程模型,每个进程响应多个请求
      • 一个主进程: 负责生成子进程,负责创建套接字,负责接受请求,并将其派发给某个子进程处理
      • 子进程:基于事件驱动机制直接响应多个请求
      • httpd 2.2 仍为测试版模型/ httpd 2.4 已经生产可用

程序主要文件

# httpd-2.2版本
    # 配置文件
        /etc/httpd/conf/httpd.conf
        /etc/httpd/conf/*conf
    # 服务脚本
        /etc/init.d/httpd
        /etc/sysconfig/httpd #脚本配置文件,修改MPM时需要用到
    # 主程序文件:
        /user/sbin/httpd
        /user/sbin/httpd.worker
        /user/sbin/httpd.event
    # 模块文件路径
        /usr/lib64/httpd/modules
        
# httpd-2.4版本
    # 配置文件
        /etc/httpd/conf/httpd.conf
        /etc/httpd/conf/*conf
        /etc/httpd/conf.modules.d/*.conf # 模块配置路径
    # 服务脚本
        /etc/init.d/httpd
        /etc/sysconfig/httpd #脚本配置文件,修改MPM时需要用到
    # 主程序文件:
        /user/sbin/httpd # 支持MPM动态切换
    # 模块文件路径
        /usr/lib64/httpd/modules

HTTPD2.2的常用配置

# 主要配置段,2和3 不能同时开启,一般都是用虚拟主机
[root@localhost ~]# grep "^###" /etc/httpd/conf/httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts

# 持续连接
# tcp建立连接后,每个资源获取完成后并不马上断开连接,而是等待其他资源的请求
# 优势:减少频繁的tcp三次握手和四次挥手
# 缺点:如果时间过长,会造成占用浪费
[root@localhost ~]# grep "KeepAlive" /etc/httpd/conf/httpd.conf
# KeepAlive: Whether or not to allow persistent connections (more than
KeepAlive Off
# MaxKeepAliveRequests: The maximum number of requests to allow
MaxKeepAliveRequests 100
# KeepAliveTimeout: Number of seconds to wait for the next request from the
KeepAliveTimeout 15

# MPM 
# 2.2不支持同时编译多个MPM模块,rpm为此专门提供了3个
[root@localhost ~]# ll /usr/sbin/httpd*
-rwxr-xr-x 1 root root 367136 Jun 19  2018 /usr/sbin/httpd
-rwxr-xr-x 1 root root 379688 Jun 19  2018 /usr/sbin/httpd.event
-rwxr-xr-x 1 root root 379688 Jun 19  2018 /usr/sbin/httpd.worker
[root@localhost ~]# cat /etc/sysconfig/httpd | grep -P 'HTTPD='
#HTTPD=/usr/sbin/httpd.worker
# 修改需要重启服务生效

# 查看静态编译的模块
[root@localhost ~]# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

# 查看静态和动态编译的模块
[root@localhost ~]# httpd -M
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 auth_basic_module (shared)
 auth_digest_module (shared)
 ...
 
# MPM配置
# 注意: 最大的不能小于start的,不然刚起来就杀了
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

通过telnet 请求网页并测试是否为长连接

相关文章

  • Httpd服务实战

    HTTPD服务 基础知识: 有base源提供,可以直接使用yum 安装 centos6 提供的是2.2版本(停止维...

  • httpd服务的配置及应用

    一、httpd服务的配置文件 httpd服务的主配置文件通常为httpd根目录下的conf/httpd.conf文...

  • Web网站服务-Apache

    一、概述 二、编译安装 三、httpd服务基础 四、httpd.conf配置文件 五、httpd服务访问控制 六、...

  • centos学习记录

    安装httpd服务 执行如下指令,安装并开启httpd服务。 apache服务其他运维命令。 启动apache服务...

  • WWW服务: Apache 卸载httpd: [root@bogon ~]# yum remove httpd 查...

  • centos中搭建HTTP服务

    1 安装httpd服务 sudo yum install httpd 2 由于apache服务需要对外开放端口,因...

  • httpd虚拟主机配置练习

    httpd虚拟主机配置练习 练习题:分别使用httpd-2.2和httpd-2.4实现;1、建立httpd服务,要...

  • ldap实现Linux登录账号统一管理-svn

    安装http 服务 yum install -y httpd 检查http是否安装 httpd -version ...

  • apache_conf

    yum install httpd 安装systemctl start httpd.service 开启服务sys...

  • 第三十八节、selinux配置/http程序部署

    一、apache网站服务程序httpd apache基金会http 协议httpd 安装的rpm软件包名httpd...

网友评论

      本文标题:Httpd服务实战

      本文链接:https://www.haomeiwen.com/subject/nnpvfktx.html