apache学习笔记

来源:互联网 发布:淘宝儿童秋装 编辑:程序博客网 时间:2024/06/03 20:05

下载安装

http://httpd.apache.org/download.cgi

linux下安装:yum install httpd(CenterOS)

启动apache service httpd start

  • httpd graceful
    “优雅的”重启,不会中断用户的访问
  • chkconfig httpd on
    设置为开机自动启动

配置文件

所在路径 /etc/httpd

  • run/httpd.pid
    主进程进程ID
    主进程是以root身份运行的
    其他子进程以apache用户身份运行
  • conf/httpd.conf
    主配置文件
  • conf.d
    模块化配置文件
  • modules
    模块的保存位置

基本概念

  • 模块化设计
  • DSO
    模块动态加载
    apxs,编译模块
    httpd -M查看当前安装的模块
    httpd -l查看静态编译的功能
  • MPM
    负责实现网络监听,请求处理等功能。
    针对不同平台,使用不同MPM(linux下prefork或worker)

prefork是非线程的,预先启动多子进程,每个子进程同一时间处理一个请求(默认使用)
优点:线程安全

worker是线程化、多进程
优点:占用内存小

MPM详解

prefork是非线程,预先启动多子进程,当访问量过多时,会自动生成更多的子进程(可使用ab命令进行测试)

默认配置在httpd.conf中
IfModule prefork.c下
这里可以配置进程最大值、最小值等
其中MaxRequestsPerChild表示每个子进程最大处理请求数量,处理达标后会杀死子进程,重新生成新的进程

主配置文件

主要分成三部分

  1. Global Enviroment
    全局配置
  2. ‘Main’Server Configuration
    主服务配置

    • ServerToken os 表示返回给用户的信息详细程度

    • ServerRoot 服务主目录

    • Timeout 60 超时时间

    • KeepAliveTimeout off主要用于TCP连接

    • LoadModule默认加载的模块

    • Include加载额外的配置文件

    • User Group 子进程所属用户

    • ServerAdmin 管理员邮箱

    • ServerName 域名

    • UseCanonicaName off

    • DocumentRoot 默认路径

    • AccessFileName 访问控制

是否使用严格域名
- Virtual Hosts
虚拟主机配置

  • NameVirtualHost :80:表示我们要做的是一个基于名称的虚拟主机,监听的端口为80.
  • <VirtualHost *:80> 和 </VirtualHost>:表示在其中的是一个虚拟主机的配置。注意如果上面的字段指定了端口号,这里也要指定
  • ServerName www.a.com:设置虚拟主机的域名,www.a.com可以是你注册的任何域名
  • ServerAlias:别名,可以为一个站点添加多个域名
  • ServerAdmin admin@mail.a.com:设置该虚拟主机网管员的邮件
  • DocumentRoot /var/www/:设置该虚拟主机的主目录路径
  • ErrorLog /var/log/apache2/error.log:设置该虚拟主机的出错信息
  • CustomLog /var/log/apache2/access.log combined:设置该虚拟主机的访问信息
  • <Directory>: 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效具体配置说明可参考:http://www.365mini.com/page/apache-directory-access-control.htm
  • -
0 0