中关村在线

软件

Apache开启自定义Web日志

本教程介绍在CentOS系统中如何配置Apache的httpd.conf文件,以实现自定义Web访问日志记录功能,包括客户端IP地址、访问时间、请求状态码等信息。其设置原理与此前发布的Windows环境下的配置方法一致,操作步骤基本相同。若需了解Windows系统的配置过程,可参考文中提及的相关文章内容,便于对照学习和应用。

1、 CentOS系统自带Apache服务,其安装目录位于/etc/httpd,其中httpd即为Apache的主程序目录。

2、 先编辑Apache配置文件。

3、 在文件中查找LogFormat关键词,使用搜索功能输入该词即可定位。

4、 打开Apache配置文件后,按下键盘上的斜杠键/,接着输入要查找的内容,例如LogFormat,然后按回车。系统会自动高亮显示匹配的文本,方便快速定位。这种方法利用了vi或vim编辑器内置的搜索功能,通过反向斜杠触发关键字查找,提高配置文件浏览效率。

5、 所示,左下角的/LogFormat为我们输入的内容,橙色高亮部分为系统匹配到的结果。由于Linux环境下无法使用鼠标滚轮翻页,我们需借助键盘操作进行浏览和查找,提升在终端中的导航效率。

6、 下一个查找结果

7、 上一个搜索结果为B

8、 我们寻获

9、 找到:

10、 在LogFormat配置下方稍作查找,也可直接搜索/CustomLog进行定位。

11、 该目录用于存放日志文件,通常位于Apache安装目录的logs子目录中,access.log为默认日志文件名。可根据实际需要自行修改文件名,若无特殊要求,保持默认设置即可。我已将其调整为所需名称。

12、 如何调整?

13、 使用vim或vi命令打开文件后,先搜索目标内容,接着按Insert键进入插入模式,即可进行编辑操作。

14、 接下来将继续进行。

15、 上方稍高位置有该代码,若不清楚可搜索下方代码进行修改,注意先按ESC退出编辑状态再搜索。

16、 这是配置需保存的日志内容,其中%h、%l等符号分别代表不同的记录信息。

17、 请根据个人需要,参考下方译文进行调整。

18、 Apache官方文档中列出了可用于日志格式字符串中的全部变量及其具体含义,以下内容为其中文表述:

19、 %…a:客户端的远程IP地址。

20、 %…A:服务器端的本地IP地址。

21、 %…B:实际发送给客户端的字节数,不包含HTTP响应头部分的数据量。

22、 %…b:以CLF(通用日志格式)表示的已发送字节数,同样不包括HTTP头部。若未传输任何数据,则显示为-,而非数字0。

23、 %…{FOOBAR}e:当前环境中名为FOOBAR的环境变量的具体值。

24、 %…f:记录当前请求所对应访问的系统文件名称。

25、 %…h:发起请求的远程主机名或IP地址,通常为客户端主机信息。

26、 %…H:客户端请求所使用的协议名称,例如HTTP/1.1或HTTP/2等。

27、 %…{Foobar}i:请求头中名为Foobar的字段内容,即客户端发送至服务器的特定请求头信息。

28、 %…l:远程用户登录标识,由identd服务提供(如配置并可用),否则通常为空或用-代替。

29、 %…m:客户端使用的HTTP请求方法,如GET、POST、PUT等。

30、 %…{Foobar}n:由其他模块设置的注解信息,提取名为Foobar的注解内容。

31、 %…{Foobar}o:服务器在响应中返回的HTTP头字段Foobar的具体值。

32、 %…p:服务器用于响应请求的实际端口号,常用于虚拟主机或多端口部署场景。

33、 %…P:处理该请求的子进程唯一标识符(PID),有助于追踪服务器内部进程行为。

34、 %…q:请求中的查询字符串部分,即URL中?之后的内容;若无查询参数,则为空字符串。

35、 %…r:客户端发送请求的第一行完整信息,包括方法、路径和协议版本。

36、 %…s:服务器返回给客户端的HTTP状态码。若请求经过内部重定向,此值反映原始请求的状态;若使用%…>s,则表示最终响应的状态码。

37、 %…t:以公共日志格式(Common Log Format)显示的时间戳,采用标准英文时间表示方式,如。

38、 %…{format}t:按指定格式format输出的时间,允许自定义时间显示样式。

39、 %…T:处理整个请求所耗费的时间,单位为秒,适用于性能监控与分析。

40、 %…u:通过身份验证识别出的远程用户名称,来自认证机制;但若响应状态为401(未授权),该值可能无效或伪造。

41、 %…U:用户请求访问的URL路径,不包括查询字符串,仅指从根路径开始的具体资源位置。

42、 %…v:服务器响应请求时所使用的主机名,即ServerName指令设定的值。

43、 %…V:根据UseCanonicalName指令配置生成的服务器名称,可能为规范化的主机名。

44、 上述所有变量前的…代表一个可选条件修饰符。当该条件未满足或无法获取对应值时,日志中将以短横线-代替输出。结合默认httpd.conf文件中的LogFormat示例可知,其定义了一种名为common的日志格式,该格式依次记录了远程主机地址、远程登录名、认证用户、请求时间、请求首行、响应状态码以及响应数据量,构成了最基本的访问日志结构,广泛应用于常规访问行为追踪与分析。

45、 例如需记录客户端IP、访问时间、状态码、传输字节数及请求的URL路径,可先将原有的LogFormat日志格式用号注释掉,再复制一行置于下方,以便保留备份,后续可在此基础上进行修改和调整,确保配置安全且便于恢复。

46、 对应添加如下内容

47、 保存完毕

48、 如何复制粘贴并保存内容?

49、 按下ESC键,用方向键将光标移至需复制内容的末尾,按V进入选择模式,再用方向键选中目标文本,完成后按ESC退出选择,接着按Y执行复制。随后通过方向键移动光标至粘贴位置,按下P即可完成粘贴操作。若不清楚可自行搜索相关说明。

50、 接着重启Apache服务即可。

51、 检查logs目录下是否存在日志文件

52、 进入Apache的logs目录:执行命令 cd /etc/httpd/logs/ 即可切换到指定路径。

53、 列出目录中的文件

54、 包含多个日志文件,其中一个是我们的webaccess_log记录。

55、 页面显示空白属正常现象,因尚未访问相关网页内容。

56、 Linux系统中,防火墙配置与访问控制列表管理尤为关键,直接影响系统安全与网络通信控制。

57、 关闭防火墙服务:执行命令 service iptables stop 即可停止运行。

58、 暂时停用访问控制列表设置。

59、 仅建议临时测试使用此方法

60、 最后尝试访问网页,再通过前述方式检查日志是否记录相关信息。

61、 好的,有了,行了

62、 访问网页需配置IP地址,具体设置方法可搜索Linux设置IP。若使用VMware虚拟机,还需在主机上添加与Linux系统同一网段的IP地址,方可实现访问。

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具