如何在生产环境中调试Symfony错误“不受信任的主机”。

3

问题:

运行Symfony 3.4时,我提前查看了Symfony的日志并看到了一些奇怪的错误:

request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\BadRequestHttpException: "Untrusted Host "52.47.154.91""

这很奇怪,因为它不是我的服务器的IP地址...

问题:

您会如何调查此问题?

=> 我认为我需要更多关于日志的细节,但我不知道如何让Monolog仅对此错误更详细。


补充信息: 我托管在AWS上,我知道需要进行一些特殊的调整,但我认为我的app.php已经配置好了以在ELB后面运行。

Request::setTrustedProxies(
// trust *all* requests
    array('127.0.0.1', $request->server->get('REMOTE_ADDR')),
    Request::HEADER_X_FORWARDED_AWS_ELB
);

被记录的IP是负载均衡器(ELB)的IP。

我认为这是 IP 扫描发现了我的负载均衡器 IP 的迹象,而该日志完全正常,因为 Symfony 表现出其应有的行为:拒绝提供内容。 - Bruno
根据文档,这可以在Amazon配置中进行管理,您有探索过这种可能性吗?(文档: http://symfony.com/doc/current/deployment/proxies.html#but-what-if-the-ip-of-my-reverse-proxy-changes-constantly) - Romain Norberg
只有负载均衡器可以访问 Web 服务器,但情况并非总是如此。 它触发日志仅因为该主机被禁止访问(这也是正常的,因为唯一授权的主机是官方域名,而不是负载均衡器的 IP)。 通过调查问题,我对此非常有信心。 我的问题更多的是如何利用更多日志,并使自己完全确定。 - Bruno
1个回答

0
你的配置文件可能有类似这样的内容: trusted_hosts: - "%domain%" 你可以将其删除或者添加 IP 地址。

我不想授权此IP提供网站内容。所以错误是正确的。我应该想要更多关于这个错误的信息,以便更好地分析导致它的原因。但我非常有信心这是由机器人的IP扫描引起的。 - Bruno

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接