Httpd服务入门知识-Httpd服务常见配置案例之日志设定

                                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.日志类型

[root@node101.yinzhengjie.org.cn ~]# ll /var/log/httpd/    #默认存放httpd服务的日志的信息
total
-rw-r--r-- root root Dec : access_log      #访问日志,记录了谁访问网站以及访问的PATH信息,服务端响应状态码等,利用该日志信息可以计算PV,UV,IP地址统计等信息。
-rw-r--r-- root root Dec : error_log       #错误日志,记录了服务启动的相关,访问被拒绝等相关信息
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# egrep -v "^ *#|^$" /etc/httpd/conf/httpd.conf | grep ErrorLog      #主配置文件默认定义错误日志位置信息
ErrorLog "logs/error_log"
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# egrep -v "^ *#|^$" /etc/httpd/conf/httpd.conf | grep CustomLog      #主配置文件默认定义访问日志位置信息
CustomLog "logs/access_log" combined
[root@node101.yinzhengjie.org.cn ~]#

二.错误日志相关配置

错误日志:
  ErrorLog logs/error_log
  LogLevel warn
  LogLevel 可选值: debug, info, notice, warn,error, crit, alert, emerg

三.访问日志相关配置

[root@node101.yinzhengjie.org.cn ~]# egrep -v "^ *#|^$" /etc/httpd/conf/httpd.conf | grep combined      #查看默认的日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
CustomLog "logs/access_log" combined
[root@node101.yinzhengjie.org.cn ~]# 以上默认日志格式变量combined的参数解释:
    %h:
      远程客户端IP地址
    %l:
      远程用户,启用mod_ident才有效,默认没有启用,因此在日志中咱们通常看到记录为减号"-"      
    %u:
      通过用户名密码的方式()验证(basic,digest)远程用户,并将用户名记录在日志中,非登录访问时,为一个减号"-"      
    %t:
       服务器收到请求时的时间,可以使用"%(format)t"来自定义时间格式哟~
    %r:
      First line of request,即表示请求报文的首行;记录了此次请求的"方法","URL"以及协议版本,如:GET /news/blog.html HTTP/1.1
    %>s:
      响应状态码,如:,,403等。
    %b:
      响应报文的大小(说白了就是访问服务器资源文件的大小),单位是字节;不包括响应报文http首部
    %{Referer}i:
      请求报文中首部"referer"的值;即从哪个页面中的超链接跳转至当前页面的。
      如果发现从百度页面跳转过来的说明你们公司广告投放效果不错,如果日志记录的是"-",则表示用户直接访问了你们公司的网站,应该是你们公司的铁粉了。
      如果你们发现该记录是从你们公司的竞争对手或者毫不相干的网站来访问的话请注意这就说明你得资源被盗链啦~
      关于防盗链的几种解决方案如下:
        ()修改资源的名称
        ()封停公网IP地址(这种做法杀敌一千,自损八百不推荐大家这样干,比如你封停的是一个电信的公网IP地址,假设典型公司有200家公司都走了这个网关地址出去的话,你封停了该IP后的确想要盗链的用户访问不到啦,但这不意味你讲很多正常用户也都封停啦)
        ()重定向解决,比如可以将不正常的访问重定向登录界面,用户登录成功后,立即将该用户拉入黑名单中,当然这得让开发来配合。可以用到的技术栈可参考Kafka,Spark,Fink等大数据技术。
    %{User-Agent}i:
      请求报文中首部"User-Agent"的值;即发出请求的应用程序,比如火狐浏览器,谷歌浏览器或者是curl命令以及自己编写的应用程序等。

四.自定义访问日志的格式

访问日志:
  定义日志格式:LogFormat format strings
  LogFormat "%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" testlog
  使用日志格式:
    CustomLog logs/access_log testlog   博主推荐阅读:
    http://httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats

1>.在主配置文件中自定义日志格式并重启服务

[root@node101.yinzhengjie.org.cn ~]# grep testlog /etc/httpd/conf/httpd.conf
LogFormat "%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" testlog
CustomLog "logs/access_log" testlog
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# httpd -t
Syntax OK
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# systemctl restart httpd
[root@node101.yinzhengjie.org.cn ~]#

2>.测试配置是否生效

[root@node101.yinzhengjie.org.cn ~]# ll /var/www/html/
total
-rw-r--r-- root root Dec : index.html
-rw-r--r-- root root Dec : info.html
-rw-r--r-- root root Dec : student.html
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# cat /var/www/html/index.html
https://www.cnblogs.com/yinzhengjie/
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# curl http://127.0.0.1/
https://www.cnblogs.com/yinzhengjie/
[root@node101.yinzhengjie.org.cn ~]#
[root@node101.yinzhengjie.org.cn ~]# tail - /var/log/httpd/access_log
127.0.0.1 - - -- :: "GET / HTTP/1.1" "-" "curl/7.29.0"
[root@node101.yinzhengjie.org.cn ~]#

Httpd服务入门知识-Httpd服务常见配置案例之日志设定的更多相关文章

  1. Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机

    Httpd服务入门知识-Httpd服务常见配置案例之虚拟主机 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.虚拟主机实现方案 1>.Apache httpd 有三种实现虚 ...

  2. Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面

    Httpd服务入门知识-Httpd服务常见配置案例之Apache的工作做状态status页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.status功能概述 status页 ...

  3. Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项

    Httpd服务入门知识-Httpd服务常见配置案例之ServerSignature指令选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ServerSignature指令概述 ...

  4. Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享

    Httpd服务入门知识-Httpd服务常见配置案例之实现用户家目录的http共享 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.实现用户家目录的http共享前提 在配置家目录共 ...

  5. Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名

    Httpd服务入门知识-Httpd服务常见配置案例之定义路径别名 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.创建测试数据 [root@node101.yinzhengj ...

  6. Httpd服务入门知识-Httpd服务常见配置案例之设定默认字符集

    Httpd服务入门知识-Httpd服务常见配置案例之设定默认字符集 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看生产环境中使用的字符集案例 1>.查看腾讯设置的默认 ...

  7. Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制

    Httpd服务入门知识-Httpd服务常见配置案例之基于客户端来源地址实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Options  1>.OPTIONS指 ...

  8. Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制

    Httpd服务入门知识-Httpd服务常见配置案例之基于用户账号实现访问控制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基于用户的访问控制概述 认证质询: WWW-Auth ...

  9. Httpd服务入门知识-Httpd服务常见配置案例之定义站点主页面及错误页面配置

    Httpd服务入门知识-Httpd服务常见配置案例之定义站点主页面及错误页面配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.定义站点主页面 [root@node101.yi ...

随机推荐

  1. 你好,我叫Flask

    首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ...

  2. SpringBoot简介以及案例

    1什么是SpringBoot Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置 ...

  3. SpringData JPA实现增删改查

    application.properties配置 一.创建实体类并自动生成数据库表 二.dao层继承JpaRepository 三.controller中增加操作 结果: 删除操作: 修改操作:

  4. Spring Boot 2.2.1 发布,一个有点坑的版本!

    上一篇:Spring Boot 2.2.0 正式发布,支持 JDK 13! Spring Boot 2.2.0 没发布多久,Spring Boot 2.2.1 又发布了,这是一个很有意思,又有点 &q ...

  5. [BUAA软工]团队贡献分博客

    Gamma阶段贡献分 Beta阶段贡献分 Alpha阶段贡献分 (博客最后部分) 复制过来: Alpha阶段 名字 角色 具体的可衡量的可验证的贡献 zpj PM,后端开发 博客X3 65 commi ...

  6. [记录]mscorlib recursive resource lookup bug解决方法

    [Content]Expression: [mscorlib recursive resource lookup bug]Description: Infinite recursion during ...

  7. [教程]K8Cscan调用外部程序(Win/Linux批量上控/执行多条命令/保存结果)

    0x000 调用原理 Cscan调用外部程序有两种方式,一是编写DLL,二是配置文件 编写DLL文件对于不懂编程的人来说可能会很难(虽然支持各语言) 由于考虑到很多人不会编程或会编程又急用无法短时间转 ...

  8. Lab_1:练习2——使用qemu执行并调试lab1中的软件

    一.实验内容 为了熟悉使用qemu和gdb进行的调试工作,我们进行如下的小练习: (一)从CPU加电后执行的第一条指令开始,单步跟踪BIOS的执行. (二)在初始化位置0x7c00设置实地址断点,测试 ...

  9. Springboot Actuator之十一:actuator transaction

    前言spring boot 的自动化配置其实就是在spring 的基础上做的封装,在我们之前对mvc,aop的自动化配置中可以发现–> 只是在spring 的基础上添加了一些特性,可以认为只是一 ...

  10. 排行榜 和 zset

    ZSET 使用 https://blog.csdn.net/weixin_37490221/article/details/78135036 https://www.cnblogs.com/chenz ...