apache基础1

来源:互联网 发布:linux通配符的使用 编辑:程序博客网 时间:2024/05/22 06:46

前言

因为公司在做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>
0 0
原创粉丝点击