zoukankan      html  css  js  c++  java
  • Server

    1. 概述

      1. 尝试记录 post 请求里的内容
    2. 背景

      1. 学习 apache
      2. 目的是记录 request 的 body
      3. 这次要配置 core 模块之外的东西
    3. 环境

      1. 虚拟机 - OS
        1. VirtualBox6.0
        2. CentOS7.2
      2. apache
        1. 2.4.6-90
        2. yum 安装
      3. 宿主机 - OS
        1. Win10
      4. 网络
        1. 虚拟机使用 桥接模式

    1. 思路

    1. 概述

      1. 这次的思路
    2. 思路

      1. 使用 dumpio 模块
      2. 使用 mod_security 模块
    3. 校验模块

      1. 命令

        > httpd -M | grep 'dumpio'
        > httpd -M | grep 'mod_security'
        
      2. 结果

        1. dumpio 存在
        2. mod_security 不存在
      3. 方案

        1. 先试试 dumpio

    2. 书上说

    1. 很简单
      1. 确认模块 mod_dumpio
      2. 修改配置
        1. 就改个日志级别
        2. 打开 dumpioinput 即可

    3. 实际

    1. 概述
      1. 感觉又被骗了
        1. 09 年的老书, 你要有准备

    1. 配置 mod_dumpio

    1. 概述
      1. 尝试配置 dumpio

    1. 修改配置

    1. 书上的配置, 貌似并不管用

    2. 使用了 官方文档 的配置

      LogLevel dumpio:trace7
      # 不加这个, 好像也可以...
      <IfModule dumpio_module>
          DumpIOInput On
      </IfModule>
      
    3. 说明

      1. 修改配置
        1. 修改 LogLevel
        2. 添加 dumpio_module 相关内容

    2. 重启 apache

    1. 需要确认重启成功

    3. 测试

    1. 访问 服务器

      > curl -X POST -d '{"key": "value"}' 'http://192.168.2.6:80/hello.html'
      
    2. 结果

      1. 服务器重启成功

      2. 访问成功

      3. 有日志

        # 日志在 error.log 里
        # 其实还有更多的日志内容, 这里只取到一小部分
        [Tue Mar 10 01:45:15.446739 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(140): [client 192.168.2.6:51110] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
        [Tue Mar 10 01:45:15.446741 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(63): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): 49 bytes
        [Tue Mar 10 01:45:15.446743 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(103): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): Content-Type: application/x-www-form-urlencoded
        
        [Tue Mar 10 01:45:15.446749 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(140): [client 192.168.2.6:51110] mod_dumpio: dumpio_in [getline-blocking] 0 readbytes
        [Tue Mar 10 01:45:15.446752 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(63): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): 2 bytes 
        [Tue Mar 10 01:45:15.446754 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(103): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): 
        
        [Tue Mar 10 01:45:15.446971 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(140): [client 192.168.2.6:51110] mod_dumpio: dumpio_in [readbytes-blocking] 16 readbytes
        [Tue Mar 10 01:45:15.446975 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(63): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): 16 bytes
        # 这就是我们要找的 body 内容...
        # 感觉性价比好低的样子...
        [Tue Mar 10 01:45:15.446977 2020] [dumpio:trace7] [pid 22409] mod_dumpio.c(103): [client 192.168.2.6:51110] mod_dumpio:  dumpio_in (data-HEAP): {"key": "value"}
        
    3. 感觉

      1. 效率好低

        1. 可能需要定义 error 日志的格式
          1. 这个有相关内容, 具体方式, 和 log 差不多...
      2. 日志混乱

        1. error 和 这种 body 信息汇聚在一起, 可能会有问题
          1. error 日志变大
          2. error 日志 和 body 信息相互干扰, 影响查找
      3. 还是想尝试一下另一种方式

    ps

    1. ref

      1. 如何查看apache加载了哪些模块
      2. glossary
        1. module 词条里, 有关于 static 和 shared 的解释
      3. dumpio
        1. dumpio 模块的配置
    2. httpd 命令行简单描述

      1. 原来除了 systemctl, apachectl 之外, httpd 还有 第三个 命令行
      2. 有空看看吧...
    3. 疑问: 模块分类

      1. 问题

        1. httpd -M 找出的模块, 后面都有额外信息
          1. static
          2. shared
        2. 这到底是怎么回事呢
      2. 结果

        1. 静态 - static
          1. 静态
            1. 被编译进了 httpd 二进制文件的模块
        2. 动态 - shared
          1. 动态
            1. 模块分开储存
            2. 可以选择性的在运行时加载
    4. 模块名 vs 源文件名

      1. apache 模块

        1. 模块名
          1. 模块有自己的名字
        2. 源文件名
          1. 源文件, 也有自己的名
      2. 问题: 模块名 未必会和 源文件名 一样

      3. 解决

        1. 倒 apache 官网的模块索引, 搜索关键字
        2. 进入模块页面, 可以确认 模块名 和 源文件名
  • 相关阅读:
    你应该掌握的七种回归技术
    jar包运行
    Spark常见问题汇总,spark相关错误和解决方法,,,,,,,,,
    shell把字符串中的字母去掉,只保留数字
    excel求和结果不对
    Matlab实现PCA
    Spring3.0 AOP 具体解释
    POJ 1422 Air Raid(二分图匹配最小路径覆盖)
    TCP、UDP和HTTP
    2014世界互联网乌镇峰会 马云演讲实录
  • 原文地址:https://www.cnblogs.com/xy14/p/12456891.html
Copyright © 2011-2022 走看看