LoaRunner学习教程:Apache监控与调优(1)

发表于:2020-11-24 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:CSDN

  Apache是世界上使用最多的web服务器软件一种,它可以运行在几乎所有广泛使用的计算机平台上,并且可以快速、可靠的通过API扩充。
  Apache全称为ApacheHTTPServer,是由Apache软件基金会开发的一款开源的网页服务器。主要介绍Apache监控与调优方面的内容,如果工作中我们的项目使用的是Apache的web服务器,那么我们就必须对其连接池、MPM等进行监控与调优。
  主要介绍以下几部分内容:
  Apache目录结构。
  Apache配置文件。
  Apache监控。
  Apache调优。
  MPM调优。
  Apache日志文件分析。
  Apache目录结构
  Apache安装好后,主要包含的目录文件有:
  bin、build、cgi-bin、conf、error
  htdocs、icons、include、lib、logs
  man、manual和modules。
  这些目录文件主要的作用如下:
  1)bin目录
  主要是存放一些命令文件
  最常用的是apache启动
  关闭和重启的命令文件apachectl。
  启动apache服务器命令
  ./apachectlstart
  停止apache服务器命令
  ./apachectlstop
  重启apache服务器命令
  ./apachectlrestart
  2)build目录
  主要是存放apache编译与构建时的相关文件。
  3)cgi-bin目录
  公共网管接口方式存放的目录。
  4)conf目录
  相关配置文件所在目录,最常用的配置文件为httpd.conf。
  5)error目录
  存放一些错误信息,这些错误信息是当请求发生错误时返回给客户端的。
  6)htdocs目录
  发布网站所在的工作目录。
  7)icons目录
  icons目录用于存放相关的图标文件。
  8)include目录
  include目录主要存放着一些封装好的头文件。
  9)logs目录
  logs目录主要是存放日志文件,包括一些常见的日志文件和一些错误日志文件。
  10)modules目录
  modules目录主要是存放着apache调用模块的源文件。
  Apache配置文件
  apache配置文件为httpd.conf,所在位置为conf目录下。任何指令都可以放置在这个配置文件中,但这些修改的指令都只能是在httpd启动或重新启动时才能被识别。
  httpd配置文件每行包含一个指令。反斜杠“\”可以用作一行的最后一个字符,以指示该指令继续到下一行。反斜杠和行尾之间不得有其他字符或空格。指令的参数由空格分隔。如果参数包含空格,则必须将该参数用引号引起来。
  配置文件中的指令不区分大小写,但是指令的参数通常区分大小写。以井号“#”开头的行被视为注释,并被忽略。注释不能与配置指令放在同一行。在指令之前会出现空白,因此为了清楚起见,您可以缩进指令。空行也将被忽略。
  可以使用语法在配置文件行中使用Shell环境变量的值ENVVAR。如果“ENVVAR”是有效环境变量的名称,则将该变量的值替换为配置文件行中的该位置,然后继续进行处理,就 像直接在配置文件中找到该文本一样。(如果找不到ENVVAR变量,则字符“{ENVVAR}。如果“ENVVAR”是有效环境变量的名称,则将该变量的值替换为配置文件行中的该位置,然后继续进行处理,就像直接在配置文件中找到该文本一样。(如果找不到ENVVAR变量,则字符“ENVVAR。如果“ENVVAR”是有效环境变量的名称,则将该变量的值替换为配置文件行中的该位置,然后继续进行处理,就像直接在配置文件中找到该文本一样。(如果找不到ENVVAR变量,则字符“{ENVVAR}”将保持不变,以供配置文件处理中的后续阶段使用。)
  在环境变量替换之后,配置文件中一行的最大长度为8192个字符,该变量是在替换环境变量,连接任何连续的行并删除开头和结尾的空白之后。
  您可以使用apachectlconfigtest或-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请求。
  语法:
  KeepAliveOn|Off
  默认值:
  KeepAliveOn
  HTTP1.0的Keep-Alive扩展功能和HTTP1.1的持久连接功能提供了长期存在的HTTP会话,该会话允许通过同一TCP连接发送多个请求。
  8.KeepAliveTimeout:
  表示当开启长连接时,请求与请求之间的时间隔。
  KeepAliveTimeoutseconds
  KeepAliveTimeout5
  设置KeepAliveTimeout为较高的值可能会导致服务器负载过重的性能问题。超时时间越长,等待与空闲客户端进行连接的服务器进程将被占用的时间越长。
  9.MPM相关参数
  MPM是多通路处理模块,主要的参数包括:
  StartServers、MaxClients
  Serverlimit、MinSpareThreads
  MaxSpareThreads、ThreadsPerChild
  MaxRequestsPerChild。这些参数具体的使用在后面讲MPM调优时会详细来介绍。
  10.ServerName
  表示服务器的主机名
  11.DocumentRoot
  表示发布的应用程序所在的位置
  DocumentRoot语法:
  DocumentRootdirectory-path
  默认值:
  DocumentRoot/usr/local/apache/htdocs
  该指令设置httpd将从该路径下获取。例:
  DocumentRoot/usr/web
  如果访问
  http://www.my.host.com/index.html
  将指向/usr/web/index.html。
  如果目录路径不是绝对路径,则假定它是相对于的ServerRoot。
  12.Directory指令
  和用于封装一组指令
  使之仅对某个目录及其子目录生效。
  使用…设置指定目录的访问权限,其中可包含:
  Options、AllowOverride、Order、Allow、Deny。
  其语法如下:
  …
  Directory-path可以是目录的完整路径,也可以是使用UnixShell样式匹配的通配符字符串。在通配符字符串中,?匹配任何单个字符,并且匹配任何字符序列,也可以使用[]约束字符的范围。所有通配符都不匹配’/'字符
  因此<Directory//public_html>
  将不匹配/home/user/public_html
  但<Directory/home//public_html>
  将匹配。例:
  <Directory/usr/local/httpd/htdocs>
  OptionsIndexesFollowSymLinks
  除了可以使用通配符匹配路径外,路径也可以支持正则表达式的形式。例如:
  <Directory~"^/www/[0-9]{3}">
  表示将匹配/www/由三个数字组成的目录。
  如果多个(非正则表达式)节与包含文档的目录(或其父目录之一)匹配,则将以最短匹配的顺序应用这些指令,并在这些文件中插入.htaccess文件中的指令。例如,
  AllowOverrideNone
  <Directory/home>
  AllowOverrideFileInfo
  AllowOverrideNone:
  表示(禁用.htaccess文件)。
  AllowOverrideFileInfo:
  表示(用于directory/home)。
  以访问文档/home/web/dir/doc.html为例,其访问顺序如下:
  应用所有FileInfo的指令
  /home/.htaccess、/home/web/.htaccess、/home/web/dir/.htaccess
  并按此顺序访问。
  13.DirectoryMatch指令
  包含适用于与正则表达式及其子目录匹配的文件系统目录的指令。
  语法:
  …
  这些指令将仅适用于命名目录和该目录的子目录
  (以及其中的文件)。但是,它以正则表达式作为参数。例如:
  <DirectoryMatch"^/www/(.+/)?[0-9]{3}">
  将匹配/www/由三个数字组成的目录。
  14.IfModule指令
  语法:
  <IfModule[!]module-file|module-identifier>…
  表示检测特定的模块是否存在,如果存在则执行里面的指令,如果不存在则忽略开始标记到结束标记之间所有的内容。
  15.Location指令
  语法:
  <LocationURL-path|URL>…
  该指令是将其附随的参数传递到URL中,location指令后面的参数就是直接应用于URL请求中的,如果需求生效,那么URL路径部分应该满足以下任一条件:
  指定的位置与URL的路径部分完全匹配。
  以反斜杠结尾的指定位置是URL路径部分的前缀。
  指定的位置(带有尾部的斜杠)是URL路径部分的前缀。
  如/private1,/private1/和/private1/file.txt
  将这些目录附随到URL地址中。
  该URL可以使用通配符。在通配符字符串中,匹配任何单个字符,并且匹配任何字符序列。这两个通配符都不匹配URL路径中的/。
  除~字符外,还可以使用正则表达式。例如:
  <Location~"/(extra|special)/data">
  16.Options指令
  options用于配置特定目录中可用的功能
  语法:
  Options[+|-]option[[+|-]option]…
  该Options指令用于控制访问服务器目录的权限。选项可以设置为None,在这种情况下,不会启用任何附加功能,或者以下一项或多项:
  All
  表示除MultiViews之外的所有特性,该选项为默认值。
  ExecCGI
  允许使用mod_cgi模块执行CGI脚本。
  FollowSymLinks
  服务器允许在此目录中使用符号连接,如果需求将目录链接到其它的路径下就需要使用到符号链接。如果该配置选项位于配置段中,将会被忽略。即使服务器遵循符号链接,它也不会更改指令中的路径名。
  在FollowSymLinks SymLinksIfOwnerMatchOptions只在段中进行工作或针对于.htaccess文件有效。
  Indexes
  表示匹配的index文件类型,如果输入的网址中有这个index文件,那么就会显示出这个文件内容,如果没有index文件,则会返回由mod_autoindex模块生成的一个格式化的目录列表,并列出该目录下的所有文件。
  MultiViews
  允许使用mod_negotiation模块提供内容协商的"多重视图"。简而言之,如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。在HTTP协议中,内容协商是这样一种机制,通过为同一URI指向的资源提供不同的展现形式,可以使用户代理选择与用户需求相适应的最佳匹配(例如,文档使用的自然语言,图片的格式,或者内容编码形式)。
  一份特定的文件称为一项资源。当客户端获取资源的时候,会使用其对应的URL发送请求。服务器通过这个URL来选择它指向的资源的某一变体——每一个变体称为一种展现形式——然后将这个选定的展现形式返回给客户端。整个资源,连同它的各种展现形式,共享一个特定的URL。当一项资源被访问的时候,特定展现形式的选取是通过内容协商机制来决定的,并且客户端和服务器端之间存在多种协商方式。
  SymLinksIfOwnerMatch
  服务器仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接。如果该配置选项位于配置段中,将会被忽略。
  Apache
  允许在一个目录配置中设置多个Options指令。
  如果一个目录中设置了多个Options指令,那么特性最多的Options指令会被使用。
  其它的都会被忽略,默认情况下各个Options指令之间并不会合并,但可能通过"+“或”-"。"+“表示将该选项添加到选中来,”-“选择在选项中删除该选项。
  注意:混合使用前面带”+"/"-“和前面不带”+"/"-"的同一可选项,可能会导致出现意料之外的结果。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号