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

PHP file_get_contents sends to same port when changed with about 1 minute

我有一个 PHP 脚本可以在不同的指定端口上调用我们的服务器 运行ning IIS 10。它是 PHP 版本 7.3.12。我 运行 通过执行“php.exe script.php”而不是来自浏览器请求,从一个 shelled out windows 进程中 运行 宁这个脚本。当我在大约一分钟内更改端口时,它会一直发送到指定的第一个端口。

例如,如果我 运行 脚本连续 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.100.10”
  • xxx.xxx.100.10 在 Citrix Netscaler 上。旨在在开发期间将请求汇集到 IIS 服务器 IP 地址并减轻攻击面,直到 Windows 防火墙设置完成。
  • 保留该设置是因为当时没有发生任何问题。
  • 即使新端口“过早”来自同一源,Netscaler 也保持源记录和端口不变,做得太好了
  • 更改内部 DNS 记录以将“example.com”指向 IIS 服务器 IP 地址使请求直接进行,从而消除了问题

感谢 Barmar 与我一起解决这个问题并为我指明了正确的方向。