Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 入门 > Linux入门 > 正文

Linux入门 十 httpd配置应用详解

时间:2014-06-03 18:35 来源:未知 作者:www.51ou.com 阅读:

前两篇博文简单的描述了web服务的基本原理,已并且编译安装了httpd2.4。今天以httpd的配置文件为蓝本,详细讲解下httpd的配置。由于2.2与2.4版本配置文件并不完全一致,这里兼顾了2.2与2.4的配置文件的主要内容。

   本文主要内容框架

   httpd文件概览

   配置文件的格式

   主要设置

一、httpd文件概览

   httpd编译安装完成后生成了一些重要的文件。主要是配置文件和应用程序文件。在上一篇中,我们将程序安装在/usr/local/apache目录下,配置文件存放在/etc/httpd24目录下。

wKiom1Mq77nTkZ6fAAEj0-AWOqY469.jpg

这里列出我们可能会使用到的主要文件、目录。更多详细信息可参考apache官方文档

二、配置文件的格式

   配置文件中大致分为全局配置、主机配置、虚拟主机配置。全局配置对整个配置文件都有下效,主机配置仅用于配置一个站点,虚拟主机配置用于提供多个站点时候使用。要注意:主机配置和虚拟主机配置不可能存在生效。

   配置内容的主要格式是:

   配置参数     值  

   eg:Listen 80

   其中:配置参数指令不区分大小写,但约定俗成,首字母大写了;值大小写敏感;有的参数可能会出现多次。

wKiom1Mq9ajSmj-VAAK2uaRacRo431.jpg

这里简单给出了配置文件的轮廓。需要说明的是,2.2与2.4的配置文件还是有一定的区别。尤其是虚拟主机的配置,2.4将其配置文件放到了ext    ra目录下。具体描述到各个功能的时候再详细介绍其不同

三、主要设置

   配置文件是httpd的重要控制文件,几乎所有的功能模块都需要在配置文件中设置。下面,将经常使用到的配置进行分析。

   在具体解析配置文件之前,先确认下httpd的工作机制。httpd是一个高度模块化的程序,它由core+module组成,可以通过DSO模块来增加或者取消相应的功能。为了适应这个机制,将功能化,实现“热插拔”的功能,aapache提供了MPM机制。这里我们介绍下MPM:多处理模块。在httpd下有三种,prefork、worker、event。

   

prefork 多进程运行,一个进程响
应一个请求。
简单高效,稳定,连接数大时
消耗内存过大
预先建立进程
worker 多线程运行,一个进程
多个线程相应请求。
每个进程线程数固定
处理请求量大,不稳定,
一个线程崩溃,
整个进程就崩溃
预先建立进程
event 基于事件驱动。主进
程生成多个子线程,
子线程相应多个请求
处理大量数据 对https支持不好

prefork:多进程运行,在web服务器中,root用户生成一个主进程,主进程管理控制生成多个子进程,每个进程处理一个请求。在用户请求到达之前,主进程预生成多个子进程,作为备用和空闲进程,以应对即将到来的请求。但是,在请求数量急剧增大情况下,对系统内存资源的消耗十分严重。

1
2
3
4
5
6
7
<IfModule mpm_prefork_module>
    StartServers             5   //默认启动进程数
    MinSpareServers          5   //最小空闲进程数
    MaxSpareServers         10   //最大空闲进程数
    MaxRequestWorkers      250   //最大启动进程数
    MaxConnectionsPerChild   0
</IfModule>

worker:多进程运行,每个进程又生成多个线程,每个进程的线程数是固定的,每个线程相应一个请求。同prefork类似,它也事先生成空闲进程备用。主进程会根据访问情况动态增加或者减少进程数量,每个子进程可建立多个服务线程和一个监听线程,监听线程接收请求,并将相关信息传入服务线程。同prefork相比,它能相应更多的请求,消耗更少的系统资源,但是由于采用线程响应,如果一个线程出现崩溃,整个进程就会崩溃,造成不稳定;

1
2
3
4
5
6
7
8
<IfModule mpm_worker_module>
    StartServers             3    //默认启动进程数
    MinSpareThreads         75    //最小空闲线程数
    MaxSpareThreads        250    //最大空闲线程数
    ThreadsPerChild         25    //每子进程生成线程数
    MaxRequestWorkers      400    //最大的工作线程数
    MaxConnectionsPerChild   0   
 //线程生命周期结束前最大服务的请求数,0为不限制
</IfModule>

event:基于事件的模型。由主进程生成多个进程,子进程生成多个线程,每个线程响应多个请求。这点worker模式一样。但是,event模式下,负责连接的工作统一由主进程实现,线程只负责里事务,处理完成后立即释放。

在编译安装时可以指定默认使用的是哪种模式,

# ./configure --prefix=/usr/local/apache  --enable-so --with-mpm=worker


在编译完成如果需要切换,在2.4的版本中,可以通过取消、加载模块的方式实现。

这里我们以httpd2.4为蓝本介绍主要配置信息。

1、Listen 80

  控***务器注册到内核的监听端口,可以修改成其他端口,但是一般情况下,使用默认80端口。

2、LoadModule authn_file_module modules/mod_authn_file.so

   #LoadModule authn_dbm_module modules/mod_authn_dbm.so

加载模块,这里只列举了两个,在配置文件中,可以使用到的模块都可以通过上述形式加载进来。

3、DocumentRoot

   wKioL1Mu006igMMKAACfx0OOem0924.jpg

这里Option定义了页面访问的属性。主要的值有

Indexes 缺少指定的默认页面时,允许将目录中的所有文件以
列表形式返回给用户;危险,不建议使用
FollowSymLinks 允许跟随符号链接所指向的原始文件,
与首部文件中的reference类似
None 所有都不启用
All 所有都启用
ExecCGI 允许使用mod_cgi模块执行CGI脚本
Includes 允许使用mod_include模块实现服务器端包含(SSI)
MultiViews 允许使用mod_negotiation实现内容协商
SymLinksIfOwnerMatch 在链接文件属主属组与原始文件的属主属组相同时,
允许跟随符号链接所指向的原始文件

 

AllowOverride 指明它下面定义的控制是否生效,一般情况下值有none(不禁用)和authconfig、all

在2.4中,授权统一使用requrie.

   允许所有主机访问:Require all granted

   拒绝所有主机访问:Require all deny

   允许某个IP地址访问 Require IP-address等

4、虚拟主机

   虚拟主机是一个重要的概念,在2.4中,虚拟主机的配置文件在extra目录中。要实现虚拟机主机。需要现在主配置文件中先做设置,同时禁用主机,主机和虚拟主机是不能同时存在的。

   4.1 在主配置文件中找到DocumentRoot,注释掉该行,取消主机配置

       

1
2
注释掉该行
#DocumentRoot "/usr/local/apache/htdocs"

   4.2 找到Virtual hosts取消注释,将扩展配置文件包含到主配置文件中

   

1
2
3
# Virtual hosts
#取消注释,包含扩展配置文件
Include /etc/httpd24/extra/httpd-vhosts.conf

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux入门 十 httpd配置应用详解》技术文章,《Linux入门 十 httpd配置应用详解》详细使用和说明,有时《Linux入门 十 httpd配置应用详解》可能不完善、敬请谅解!如果《Linux入门 十 httpd配置应用详解》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(1)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片