PHP file_get_contents在大约1分钟内更改后发送到同一端口



我有一个PHP脚本,它调用在不同指定端口上运行IIS 10的服务器。它是PHP版本7.3.12。我通过执行";php.exe script.php";,而不是来自浏览器请求。当我在大约一分钟内更改端口时,它会一直发送到指定的第一个端口。

举个例子,如果我运行脚本3次,连续进行这3次迭代:

$result = file_get_contents('https://example.com:6447/token', false, $context);
$result = file_get_contents('https://example.com:6453/token', false, $context);
$result = file_get_contents('https://example.com:6447/token', false, $context);

并检查日志,它们都记录在6447下。

我和邮递员试过同样的方法,结果不出所料。第一个和第三个记录在6447以下,第二个记录在6453以下。

然后我尝试复制脚本并分别运行它们,但它仍然发布到错误的端口

我需要做些什么来关闭连接吗。我被难住了。

好的,我们解决了。以下是注意事项:

  • 脚本调用DNS FQDN"example.com"。在"域控制器"内部,DNS将其转换为"xxx.xxx.10.10">
  • xxx.xxx.100.10在Citrix Netscaler上。在开发过程中,旨在将请求集中到IIS服务器IP地址,并在完成Windows防火墙设置之前缓解攻击
  • 由于当时没有发生任何问题,因此保留了该设置
  • Netscaler保存了源记录&端口常量,即使新端口来自同一源"太早">
  • 将内部DNS记录更改为将"example.com"指向IIS服务器IP地址,使请求直接进行,从而消除了问题

感谢Barmar与我一起度过难关,并为我指明了正确的方向。

最新更新