gpt4 book ai didi

linux - 如何查看通过 apache 规则传输的 Web 请求

转载 作者:太空宇宙 更新时间:2023-11-04 05:13:16 25 4
gpt4 key购买 nike

我写了一些apache规则,比如:

RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8443%{REQUEST_URI} [P,L]

如何调试以查看 apache 进程每个阶段的请求是什么样的?例如:

  • 它以 X 开头
  • Apache 应用规则 1,结果变为 Y
  • Apache 应用了规则 2,它变成了 Z

我如何准确地了解此过程中发生了什么?

本质上,我想弄清楚为什么 websocket 请求是 404'ing。请求如下所示:

Request URL: wss://mysite.com/ws/registration/1234/
Request Method: GET
Status Code: 404 Not Found
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocket-Key: xh+D6ed0N9dL8p42ADD2lQ==
Sec-WebSocket-Version: 13
Upgrade: websocket

我想看到的是:

  1. Apache 是否收到请求? (显然是这样)
  2. 是否应用了任何重写规则?
  3. 请求“结束”的结果是什么?
  4. 最后,您是否可以为其提供任何“打印”规则,例如查看 {REQUEST_URI} 是什么?

最佳答案

也许最简单的方法是设置最高级别的调试(默认设置为错误)--

# /etc/apache2/apache2.conf
LogLevel trace8

这是最高级别,可能包含太多信息(例如 SSH 连接信息)。但您可以降低到适当的调试级别 described here 。请注意,您的服务器在调试时会变得“缓慢”,因此完成后将其恢复到适当的级别。

此外,您可以通过 grep 输出来查找您想要查找的特定模块或部分(例如 mod_write):

$ tail -f /var/log/apache2/error.log | grep --line-buffered mod_rewrite

关于linux - 如何查看通过 apache 规则传输的 Web 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52705488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com