Apache配置文件httpd.conf深入剖析

本文深入探讨了Apache服务器的基本配置、优化策略、持久性连接设置以及日志记录功能,旨在帮助用户理解如何高效地管理和维护Web服务器。

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

一、站点的基本配置

1、ServerRoot "/mnt/software/apache2":apache软件安装的位置,其他指定的目录如果没有绝对路径,则目录是相对路径。

2、PidFile logs/httpd.pid:第一个httpd进程(所有其他进程的父进程)的进程号文件位置。

3、Listen 80:服务器监听的端口号。

4、ServerName www.clustiong.com:80:主站点的名称(网站的主机名)。

5、ServerAdmin admin@clusting.com:管理员的邮件地址。

6、DocumentRoot "/mnt/web/clujstiong":主站点的网页存储位置

7、DirectoryIndex index.html index.htm index.php:主页文件的设置


二、服务器的优化配置

apache的主要优势就是能更好的支持多处理器,在编译时通过使用--with-mpm选项来决定apache的工作模式。如果知道当前的apache使用的工作机制,则可以通过httpd -l命令列出apache的所有模块,从而就可以知道其工作方式。

(1)prefork。如果httpd -l列出了prefork.c,则需要对下面的这段参数进行配置:

         StartServers 5    #启动Apache时启动的httpd进程个数

         MinSpareServers   5   #服务器保持的最小空间进程数

         MaxSpareServers   10   #服务器保持的最大空间进程数

         MaxClients    150    #最大并发连接数

         MaxRequestsPerChild    1000     #每个子进程被请求服务多少次后别kill掉,0表示不限制,推荐设置为1000

(2)worker。如果httpd -l列出worker.c,则需要对下面的内容进行配置:

         StartServers   2     #启动Apache时启动的httpd进程个数

         MaxClients 150         #最大并发连接数

         MinSpareServers   5   #服务器保持的最小空间进程数

         MaxSpareServers   10   #服务器保持的最大空间进程数

         ThreadsPerChild    25   #每个子进程产生的线程数

         MaxRequestsPerChil   #每个子进程被请求服务多少次后别kill掉,0表示不限制,推荐设置为1000

(3)perchild。如果httpd -l列出perchild.c,则需要对下面的内容进行配置:

         StartServers   5     #启动Apache时启动的httpd进程个数

         StartThreads  5     #每个子进程启动时的线程数

         MinSpareServers   5   #服务器保持的最小空间进程数

         MaxSpareServers   10   #服务器保持的最大空间进程数

         MaxThreadsPerChild   2000  #每个线程数最多被请求多少次后退出,0表示不受限制

         MaxRequestsPerChil   #每个子进程被请求服务多少次后别kill掉,0表示不限制,推荐设置为1000


三、持久性连接配置。

在apache的httpd.conf中,KeepAlive表示保持连接活跃、类似于MySQL的永久连接。如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再连接一次,避免每次请求都要新建一个连接而加重服务器的负担。KeepAlive的连接活跃时间当然是受KeepAliveTimeOut限制的。如果第二次请求和第一次请求之间超过了KeepAliveTimeOut的时间,第一次连接就会中断,再新建第二个连接,所以一般情况下,图片较多的网站应该把KeepAlive设为On。到底要把KeepAliveTimeOut设置为多少则需要根据网站的流量和服务器的配置而定。相关的配置说明如下:

    KeepAlive  On:开启持久性连接功能。

    MaxKeepAliveRequests  100 :一个连接服务的最多请求次数

    KeepAliveTimeout  30:测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值后,服务器就断开连接。默认值是15秒。


四、日志记录

要有效的管理Web服务器,反馈服务器的活动,性能及出现的问题就很有必要。Apache HTTP服务器提供了非常全面而灵活的日志记录功能。

1、日志的配置

apache提供了很全面的日志管理工具来对服务器的活动进行事后分析。apache提供了多种不同的记录日志,但是对安全专业人士来说最重要的是访问日志。这个工具还有很多自定义功能,可以按照你的需要很方便的记录尽可能多或少的日志,以保证有效的分析。

  (1)ErrorLog file-path|syslog[:facility]

        指定了当服务器遇到错误时记录错误日志的文件。如果file-path不是一个以斜杠(/)开头的绝对路径,那么他会被认为是一个相对于ServerRoot的相对路径。示例如下:

       ErrorLog   "logs/error.log"

       LogFomat   fomat|nickname  [nickname]

       本指令的功能是定义访问日志的记录格式,例如:

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

2、错误日志

错误日志是最重要的日志文件,其存放位置取决于ErrorLog指令。

3、访问日志

访问日志会记录对Web服务器的所有请求,起存放文件和记录的格式取决于CustomLog指令,LogFormat指令可以定义日志的内容格式。

CustomLog "logs/access.log" common

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值