【问题标题】:Apache failed to make http responseApache 未能做出 http 响应
【发布时间】:2022-01-19 15:06:38
【问题描述】:

我想在我的 CentOS 服务器上建立一个带有 httpd 官方 docker 镜像的网站。然而,我遇到了一个奇怪的问题。在我的 CentOS 服务器上,wget http://xxx.xxx.xxx.xxx 工作正常。但在我的笔记本电脑上,我可以连接到服务器但无法获得任何 http 响应:

--2022-01-19 22:55:33--  http://xxx.xxx.xxx.xxx/
Connecting to xxx.xxx.xxx.xxx:80... connected.
HTTP request sent, awaiting response...

我没有修改配置文件httpd.conf。不知道为什么它不能远程工作。谁能帮我解决这个问题?你会得到我的感激。我将撰写文件留在下面。

services:
  httpd:
    image: httpd:2.4
    network_mode: host

【问题讨论】:

    标签: apache http


    【解决方案1】:

    看起来问题可能出在远程服务器上,因为连接已在 TCP 级别建立,您需要等待 HTTP 状态代码返回。

    您还可以使用Wireshark 捕获流量,然后按照 TCP 流查看 HTTP 会话。

    因此,您可以实时调试 tcp 流或将服务器的流量输出保存在文件(example.pcap)中并保存,然后您可以使用 Wireshark 打开它以查看服务器和客户端之间发生的情况。

    这是一个关于如何在您的服务器中开始捕获的示例:

    打开 2 个终端:首先,通过 ssh 连接到您的服务器并输入:

    # tcpdump -vv -s0 tcp port 80 -w /tmp/example.pcap
    

    (您还可以附加和来源主机 以过滤垃圾请求并查看防火墙是否正在过滤您的请求 SYN 、 ACK)

    在第二个中,使用 wget 浏览您的网站,重现此问题并切换到第一个终端并按 Ctrl+C。

    将此 .pcap 文件复制到客户端并使用 Wireshark 打开以查看会发生什么。

    【讨论】:

    • 感谢您的帮助。我试图从我的笔记本电脑中捕获数据包。服务器确认 HTTP 请求但没有回复任何数据。
    • 但是,在服务器端,我捕获了不同的数据包。客户端多次重新发送 SYN 数据包。 SYN ACK 数据包被“通信管理过滤”。我关闭了firewalld,然后它就可以工作了。
    猜你喜欢
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 2020-02-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    相关资源
    最近更新 更多