使用完全限定地址进行 Curl

使用完全限定地址进行 Curl

我正在运行虚拟专用服务器来托管一些网站。我有一个 PHP 脚本,它尝试从服务器获取资源,本质上是使用 curl 命令发送到服务器(http://example.com/files/resource.txt) 失败。我尝试从服务器终端模拟命令,但因超时而失败,甚至当我 ping 服务器 (example.com) 时,数据包丢失率也达到 100%。

但是,如果我尝试从其他地方 curl 同一个文件,它就会成功。此外,如果我尝试从服务器 curl 任何其他网站,它都会成功。

所以我怀疑服务器不知道从哪里访问 example.com。我发现有人提到使用 curl 的命令行参数,但这无法解决从 PHP 进行 curl 的问题。

有任何想法吗?

服务器:Debian 7.6

DNS: bind9

其他:apache2、nginx、exim4、dovecot、mysql、vsftpd、cron

答案1

也许您的域名还不够新,DNS 传播延迟是一个问题?

尝试cat /etc/resolv.conf检查它正在使用哪个名称服务器。或者,如果您有 root 访问权限,并且服务器的 IP 是静态的,则始终可以将 FQDN 添加到 /etc/hosts。

答案2

所以结果是我的主机在所有服务器上禁用了环回查询。

因此假设我的网站在 example.com 上运行:我的服务器向 example.com 发出请求,当请求离开我的服务器并到达主机的基础设施(可能是防火墙)时,它会解析回请求来自的服务器(我的服务器),并且它会默默地终止该请求。

解决方法是修改服务器上的hosts文件,将example.com指向127.0.0.1

相关内容