我对 httpd.conf 详解

简介:

apche配置参数比较多,这里只写了我平时经常用到的几点:黑色文字是网上找的资料蓝色是配置参数红色是我自己的看法,仅供参考。

 Worker 由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients 设置了同时连入的clients最大总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。MinSpareThreads和 MaxSpareThreads的最大缺省值分别是75和250。这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节。

ThreadsPerChild是worker MPM中与性能相关最密切的指令。ThreadsPerChild的最大缺省值是64,如果负载较大,64也是不够的。这时要显式使用 ThreadLimit指令,它的最大缺省值是20000。Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是20000)。

需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值。
<IfModule worker.c>
ServerLimit 25
ThreadLimit 200
StartServers 3
MaxClients 2000
MinSpareThreads 50
MaxSpareThreads 200
ThreadsPerChild 100
MaxRequestsPerChild 0
</IfModule>


-----
#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录
ServerRoot "/usr/loacl/apache2"
如虚机a站点配置的日志在 logs/test.log,那完整路径就是/usr/loacl/apache2/logs/test.log
-----
#Timeout:接收和发送前超时秒数
Timeout 150
#KeepAlive:是否允许稳固的连接(每个连接有多个请求),
#设为"Off"则停用。
KeepAlive On
#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数
KeepAliveTimeout 5
这3个值我一般都配合使用,如果网站的访问量很高,php占用的系统资源较高,就把KeepAliveTimeout往小调,或者直接把KeepAlive设置成Off试试。
------
#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,
#设为0表示无限制接入。
MaxKeepAliveRequests 1000
推荐将其设为一个较大的值,以提高性能。
--------
# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。
DocumentRoot "/home/redhat/public_html"
DocumentRoot配置在全局参数里面,如果直接用IP来访问服务器,默认的就去读取这里面的文件。一般我把这里配置到一个错误页面,不允许IP来直接访问,也就是禁止访问默认虚拟主机,正式的站点都通过虚拟主机模块来配置。
------
# DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名
DirectoryIndex index.php index.html index.htm
定于默认首页的访问顺序,越前优先级越高,这个参数一般放在虚机主机模块里面定义,毕竟每个网站的默认首页文件可能不一样。
-------
# Typeconfig:定义在哪里查询mime.types文件。
TypeConfig conf/mime.types
# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。
DefaultType text/plain
这个参数我的理解就是配置站点要识别哪些后缀名文件的配置参数,如果不认识,直接用text本文模式来显示。
-------
# LogLevel:控制记录在错误日志文件中的日志信息数量。
# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。
LogLevel error
日志文件的记录等级,这个根据站点情况来定,线上站点,一般配置成error来减少对磁盘的写操作。
-----
# 下面的指令为CustomLog指令定义格式别名。
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

这个是定于记录日志的格式,具体每个参数的作用可以自己google下
-------------
指定接入日志文件的定位和格式(一般日志格式)。
CustomLog logs/access_log common
全局参数,默认的正确日志记录文件和格式。一般一个服务器上都有多个站点,建议在虚拟主机模块里为每个站点定义一个日志文件。
-----------

# 这里是添加php 支持的指令
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so

配置apache支持php模块


1
2
3
4
5
Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
  < /Directory >

AllowOverride的设置 对每个目录访问控制文件作用的影响
All 缺省值,使访问控制文件可以覆盖系统配置
None 服务器忽略访问控制文件的设置
Options 允许访问控制文件中可以使用Options参数定义目录的选项
FileInfo 允许访问控制文件中可以使用AddType等参数设置
AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录
Limit 允许对访问目录的客户机的IP地址和名字进行限制
每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:
Options设置 服务器特性设置
All 所有的目录特性都有效,这是缺省状态
None 所有的目录特性都无效
FollowSymLinks 允许使用符号连接,这将使浏览器有可能访问文档根目录(DocumentRoot)之外的文档
SymLinksIfOwnerMatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性
ExecCGI 允许这个目录下可以执行CGI程序
  Indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表



下面是虚拟主机配置,要增加多个主机,只要复制一份修改下站点名字,文件路径,日志名称即可。//后为注释
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 192.168.0.1>(虚拟主机IP)
ServerAdmin 111@xxx.com(第一个虚拟主机Email)
DocumentRoot H:/web001(第一个虚拟主机目录)
ServerName www.xxx.org(第一个虚拟主机域名)
ErrorLog logs/www.xxx.org-error.log(第一个虚拟主机错误日志)
CustomLog logs/www.xxx.org-access.log common(第一个虚拟主机数据)
</VirtualHost>

<VirtualHost 192.168.0.2>(虚拟主机IP)
ServerAdmin 111@xxx.com(第二个虚拟主机Email)
DocumentRoot H:/web002(第二个虚拟主机目录)
ServerName www.xxx2.org(第二个虚拟主机域名)
ErrorLog logs/www.xxx2.org-error.log(第二个虚拟主机错误日志)
CustomLog logs/www.xxx2.org-access.log common(第二个虚拟主机数据)
</VirtualHost>
以此类推,可以增加更多虚拟主机。



本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1732080

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
网络安全
httpd服务的配置
httpd服务的配置
260 0
|
机器学习/深度学习 Shell Apache
httpd.conf 配置
# # This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions.
1038 0
|
关系型数据库 MySQL PHP
httpd 的坑
Httpd服务器的坑 在/etc/httpd/conf/httpd.conf中的配置信息, 有时注释到的内容仍然会生效 配置Auth时, 允许htpasswd规定的文件中的所有的用户, Require valid-uesr, 允许特定的用户Require user user1 user2 user3 .
916 0
|
JavaScript 开发工具 前端开发
|
开发工具
|
开发工具