apache基础1

本文介绍Apache服务器的基础架构,包括启动过程、配置文件解析、模块加载等。重点讲解了核心对象如request_rec、server_rec的作用及配置记录的数据结构ap_conf_vector_t。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

因为公司在做apache模块开发,所以开始从一本叫《Apache模块开发指南》的开始学起。本文当做学习的笔记,将简要信息和个人理解记录下,以方便复习。随着项目的开展和学习的加深,本文会随着扩充。

启动

Apache 在启动阶段读取配置文件、加载模块和函数库,以及分配资源,并在启动阶段对这些资源进行初始化。Apache 在启动阶段拥有系统最高的权限,已单进程、单线程方式运行。

这里写图片描述

配置文件Httpd.conf

  • 加载模块
LoadModule foo_module modules/mod_foo.so
  • 网站目录
DocumentRoot /usr/local/Apache/htdocs
  • 环境变量,有mod_env实现
SetEnv hello "hwllo,world!"
  • 容器(Containers)
<VirtualHost *:80>
    DocumentRoot /usr/www/example
    ServerName www.example.com
    ServerName Webmaster@example.com
    ErrorLog "logs/dummy-host2.hleclerc-PC.ingenidev-error.log"
    CustomLog /var/log/www.example.log
</VirtualHost>

概念

  • APR池(apr_pool_t)
    是Apache中资源管理的核心。当一个资源被动态分配时,在APR池中国注册一个清理操作,保证资源在不需要的时候被释放掉

  • 配置记录
    数据结构 ap_conf_vector_t,用途:1设置和过去全局的配置数据;2将临时数据保存到临时的对象中。在一个模块中应该尽量避免使用不安全的静态变量和全局变量

  • 内核对象
    • request_rec 对象正 Apache 接受连接请求时创建,在处理完请求之后销毁。request_rec 对象拥有所有涉及处理该HTTP请求的内部数据,也包括Apache用来维护中间状态和客户端信息的一系列字段
    • server_rec 对象定义逻辑 Web 服务器。每一个虚拟机都有紫的 server_rec 文件,报过服务器名称,服务器定义,资源,和限制,日志信息等。server_rec 对象在服务器启动阶段时对创建并一直持续到整个 Httpd 关闭为止。
    • conn_rec 对象是一个 TCP 连接在 Apache 的内部表示。在apache接受一个来源于客户端的连接请求时创建,随后在该连接结束时销毁。
    • process_rec 是一个操作系统对象。

Http请求的一个处理函数通过httpd.conf文件中使用SetHandler 和AddHandler指令进行配置

    <Location /api/>
        SetHandler glms_handler //mod_glms 模块的配置函数
    </Location>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值