apache2配置说明

配置文件都在/etc/httpd目录下。

httpd其实是一种高度模块化设计的、通常由核心和各种模块所组成

查看版本

httpd -v

httpd的常用的功能特性:

支持路径别名:alias 支持用户认证:基本认证和摘要认证authentication 支持虚拟主机:virtual host 在一个物理主机上提供多个站点 支持负载均衡:是反向代理的一个子特性 支持用户站点:当前用户都可以在自己的家目录下创建自己的站点 支持CGI:Common Gateway Interface 通用网关接口

目录结构

服务脚本:/etc/rc.d/init.d/httpd 脚本配置文件路径:/etc/sysconfig/httpd 运行目录:/etc/httpd 配置文件: 主配置:/etc/httpd/conf/httpd.conf 扩展配置:/etc/httpd/conf.d/*.conf 监听的Socket: tcp的80, 443是https/tcp的监听端口 在内核中使用小于1023的端口的只有管理员 文档根目录:/var/www/html CGI目录:/var/www/cgi-bin/

主配置文件结构

  1. 全局配置:对主服务器或虚拟主机都有效,且有些功能是服务器自身工作属性;

  2. 主服务器配置:主站属性

  3. 虚拟服务器:虚拟主机及属性定义

基本原理

apache2组件 httpd 在启动的时候自动读取/etc/httpd/conf/httpd.conf文件的配置信息

  1. 不同的配置项按功能分布在不同的文件中,然后被Include包含到apache2.conf这个主配置文件中,方便管理。 就是说事实上主配置文件只有一个,其他的都是被include进来的。
  2. 可以把所有的配置都放在apache2.conf或者任何一个配置文件中,但是划分到不同文件会管理起来方便很多

测试配置和查看的命令

  • service httpd configtest

    测试配置文件有没有语法错误

  • httpd -t

    同上

  • httpd -l

    当前服务器所使用的模型及开启模块

  • httpd -D DUMP_MODULES

    当前服务器支持的模块

  • service httpd reload

    重新加载配置文件

  • service httpd restart

    重启httpd服务

注意:

  1. 修改配置文件后要重新加载配置文件
  2. 修改服务器监听端口后要重启服务

主配置文件的基本配置

配置httpd的工作属性时,指令不区分大小写 但有约定俗成的习惯:

  1. 单词的首字母大写;
  2. 指令的值很有可能区分大小写;
  3. 有些指令可以重复使用多次;

  4. Listen [IP:]PORT > 配置监听的端口,IP为可选项,不写则监听所有接口的端口。


# 指定网站的主目录
DocumentRoot "/var/www/html" 

Options
#配置页面文件的访问属性
Indexes
#是否允许索引页面文件,建议关闭
FollowSymLinks
#是否跟随软连接文件
SymLinksifOwnerMatch
#跟随符号链接,只允许访问运行apache的用户有属主权限的文件
ExecCGI:
#是否允许执行CGI脚本;

日志功能

日志有两类:访问日志(格式自定义)、错误日志

  1. 错误日志: ErrorLog "/path/to/error_log_file"

  2. 访问日志: CustomLog "/path/to/custom_log_file" logformat

日志格式:{combined|common|agent}

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

  • 对应参数

%h #主机名

%l #

%u #用户名

%t #请求到达的时间

%r #请求报文的起始行,方法

%s #

%b #响应报文的大小

%{Foobar}i #显示从发那个站点跳转过来

%{User-Agent}i #用户代理