Jmeter

Apache监控与调优(二)配置文件

2020-04-15  本文已影响0人  熊一二

apache配置文件为 httpd.conf,所在位置为 conf 目录下。任何指令都可以放置在这个配置文件中,但这些修改的指令都只能是在httpd启动或重新启动时才能被识别。

httpd配置文件每行包含一个指令。
反斜杠“ \”可以用作一行的最后一个字符,以指示该指令继续到下一行。
反斜杠和行尾之间不得有其他字符或空格。
指令的参数由空格分隔。如果参数包含空格,则必须将该参数用引号引起来。
配置文件中的指令不区分大小写,但是指令的参数通常区分大小写。以井号“#”开头的行被视为注释,并被忽略。注释不能与配置指令放在同一行。
在指令之前会出现空白,因此为了清楚起见,您可以缩进指令。
空行也将被忽略。

可以使用语法在配置文件行中使用Shell环境变量的值${ENVVAR}。

在环境变量替换之后,配置文件中一行的最大长度为8192个字符,该变量是在替换环境变量,连接任何连续的行并删除开头和结尾的空白之后。

您可以使用 apachectl configtest-t 命令行选项在不启动服务器的情况下检查配置文件中的语法错误。

配置文件中常见配置项说明:

1. ServerRoot

http-www的Home目录,用来存放配置文件、错误文件、记录文件。

2. Listen

用于设置服务器IP地址和端口号,apache默认端口号是80。

3.User

启动apache的相关用户

4.Group:

启动apache相关组

5.PidFile:

表示启动程序进程所在的位置

6.Timeout:

表示连接超时,如果客户端与服务器已连接上,在超时范围内还未发送请求给服务器,那么服务器会自动与客户端断开。

7.KeepAlive:

表示是否保持长连接,即在一个TCP连接下可以发送多个HTTP请求。

语法:
    KeepAlive On|Off

默认值:
    KeepAlive On

HTTP1.0的Keep-Alive扩展功能和HTTP1.1的持久连接功能提供了长期存在的HTTP会话,该会话允许通过同一TCP连接发送多个请求。

8.KeepAliveTimeout:

表示当开启长连接时,请求与请求之间的时间隔。

语法:
KeepAliveTimeout seconds
样例:
KeepAliveTimeout 5

设置KeepAliveTimeout为较高的值可能会导致服务器负载过重的性能问题。超时时间越长,等待与空闲客户端进行连接的服务器进程将被占用的时间越长。

9.MPM相关参数

MPM是多通路处理模块,主要的参数包括:
  StartServers、
  MaxClients、
  Serverlimit、
  MinSpareThreads、
  MaxSpareThreads、
  ThreadsPerChild
  和MaxRequestsPerChild。

这些参数具体的使用在后面讲MPM调优时会详细来介绍。

10.ServerName

表示服务器的主机名

11.DocumentRoot

  表示发布的应用程序所在的位置

DocumentRoot语法:
DocumentRoot *directory-path*

默认值:
DocumentRoot /usr/local/apache/htdocs

该指令设置httpd将从该路径下获取取。例:
DocumentRoot /usr/web

如果访问 http://www.my.host.com/index.html将指向 /usr/web/index.html。如果目录路径不是绝对路径,则假定它是相对于的ServerRoot

12. Directory指令

<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。
使用<Directory>… </Directory>设置指定目录的访问权限,其中可包含:
Options、AllowOverride 、Order、Allow 、Deny。

其语法如下:

<Directory *directory-path*>
...
</Directory>

Directory-path可以是目录的完整路径,也可以是使用Unix Shell样式匹配的通配符字符串。在通配符字符串中,?匹配任何单个字符,并且 * 匹配任何字符序列,也可以使用 [] 约束字符的范围。所有通配符都不匹配 '/' 字符,因此<Directory /*/public_html>将不匹配 /home/user/public_html,但<Directory /home/*/public_html>将匹配。例:

<Directory /usr/local/httpd/htdocs>
  Options Indexes FollowSymLinks
</Directory>

除了可以使用通配符匹配路径外,路径也可以支持正则表达式的形式。例如:

<Directory ~ "^/www/[0-9]{3}">

表示将匹配 /www/ 由三个数字组成的目录。

如果多个(非正则表达式)<Directory>节与包含文档的目录(或其父目录之一)匹配,则将以最短匹配的顺序应用这些指令,并在这些文件中插入 .htaccess 文件中的指令。例如,

<Directory />
  AllowOverride None
</Directory>

<Directory /home>
  AllowOverride FileInfo
</Directory>

AllowOverride None:表示(禁用.htaccess文件)。
AllowOverride FileInfo:表示(用于directory /home)。

以访问文档/home/web/dir/doc.html为例,其访问顺序如下:

应用所有FileInfo的指令 /home/.htaccess、/home/web/.htaccess、/home/web/dir/.htaccess,并按此顺序访问。

13. DirectoryMatch指令

包含适用于与正则表达式及其子目录匹配的文件系统目录的指令。

语法:

< DirectoryMatch regex >
  ...
</DirectoryMatch >

这些指令将仅适用于命名目录和 该目录的子目录(以及其中的文件)<Directory>。但是,它以正则表达式作为参数。例如:

<DirectoryMatch "^/www/(.+/)?[0-9]{3}">

将匹配/www/由三个数字组成的目录。

14.IfModule指令

语法:

<IfModule [!]*module-file*|*module-identifier*> ... </IfModule>

表示检测特定的模块是否存在,如果存在则执行里面的指令,如果不存在则忽略开始标记到结束标记之间所有的内容。

15.Location指令

语法:

<Location *URL-path*|*URL*> ... </Location>

该指令是将其附随的参数传递到URL中,location指令后面的参数就是直接应用于URL请求中的,如果需求生效,那么URL路径部分应该满足以下任一条件:

如/ private1,/ private1 /和/private1/file.txt,将这些目录附随到URL地址中。

该URL可以使用通配符。在通配符字符串中,? 匹配任何单个字符,并且*匹配任何字符序列。
这两个通配符都不匹配URL路径中的 /

除~字符外,还可以使用 正则表达式。例如:

<Location ~ "/(extra|special)/data">

16. Options指令

options用于配置特定目录中可用的功能

语法:

Options [+|-]*option* [[+|-]*option*] ...

该Options指令用于控制访问服务器目录的权限。选项可以设置为None,在这种情况下,不会启用任何附加功能,或者以下一项或多项:

注意:混合使用前面带 "+"/"-" 和前面不带 "+"/"-" 的同一可选项,可能会导致出现意料之外的结果。

上一篇 下一篇

猜你喜欢

热点阅读