我有一个应用程序,一个简单的网页,可通过 RHEL Linux 发行版上的 apache 网络服务器上的端口 80 访问。
该服务器的服务器名称为“xyz.domain.com”,可通过 2 个网络接口访问。
从两个网络 telnet xyz.domain.com 80 都没问题:服务器可用。问题是,从网络 2,wgethttp://xyz.domain.com/index.html超时。
我不是设置这些机器的人,根据你的说法,问题可能出在哪里?也许是一些 iptables 配置?
我按照建议设置了详细标志,但出现以下情况,似乎设置了“TCP NODE RELAY”,这是什么意思?在它工作的网络上不存在,我认为这就是原因。
* TCP_NODELAY set
* Connected to xyz.domain.com (10.10.8.1) port 80 (#0)
> GET / HTTP/1.1
> Host: xyz.domain.com
> User-Agent: curl/7.56.1
> Accept: */*
>
0 0 0 0 0 0 0 0 --:--:-- 0:00:20 --:--:--
0* Recv failure: Connection was reset
* stopped the pause stream!
0 0 0 0 0 0 0 0 --:--:-- 0:00:21 --:--:-- 0
* Closing connection 0
curl: (56) Recv failure: Connection was reset
答案1
wget
在使用或测试时使用详细标志curl
来查看更多正在发生的事情,而不仅仅是导致的超时。
如果没有这些,我只能做出一些有根据的猜测:
- 实际的 Web 客户端不仅会建立连接,还会遵循 HTTP 协议指令:
- 客户将尊重网络代理设置(例如
http_proxy
设置/缺少环境变量,没有相应的https_proxy
或需要 proxy_ignore) - HTTP 301 和 302 重定向
http://www.example.com
可能会在 HTTP 协议级别重定向到 HTTPS 或其他站点,并且其他域/端口就是被阻止的。 - 有点相关:符合标准的浏览器应该尊重高速传输系统(预加载)设置,无论 http URL 如何,你的浏览器都会转到 https
- 客户将尊重网络代理设置(例如