问题描述
我在ELB和Symfony应用程序方面有小问题。在日志中,有时会看到这种类型的错误:
"[Mon Aug 10 10:38:56.440715 2020] [PHP7:notice] [pid 5697] [client 10.0.2.35:44276] [error] Uncaught PHP Exception Symfony\\Component\\HttpKernel\\Exception\\BadRequestHttpException: "Untrusted Host "54.76.34.25"." at /home/ubuntu/code/admin/vendor/symfony/http-kernel/HttpKernel.PHP line 82"
我将此代码(来自文档)添加到public/index.PHP
中:
Request::setTrustedProxies(['127.0.0.1','REMOTE_ADDR'],Request::HEADER_X_FORWARDED_AWS_ELB);
但这根本没有帮助。因此,我修改了下一个代码,并在其他位置也添加了REMOTE_ADDR
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
$trustedProxies .= ",REMOTE_ADDR";
Request::setTrustedProxies(
explode(',',$trustedProxies),Request::HEADER_X_FORWARDED_AWS_ELB);
}
但这也没有帮助。还是我在日志中发现了一些错误。
有人知道如何减轻此错误吗?
应用程序在2个(有时是3个)实例上位于AWS ELB后面。
<?PHP
use App\Kernel;
use Symfony\Component\Dotenv\Dotenv;
use Symfony\Component\ErrorHandler\Debug;
use Symfony\Component\HttpFoundation\Request;
require dirname(__DIR__).'/vendor/autoload.PHP';
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
if ($_SERVER['APP_DEBUG']) {
umask(0000);
Debug::enable();
}
Request::setTrustedProxies(['127.0.0.1',Request::HEADER_X_FORWARDED_AWS_ELB);
if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
$trustedProxies .= ",Request::HEADER_X_FORWARDED_AWS_ELB);
}
if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
Request::setTrustedHosts([$trustedHosts,$_SERVER['REMOTE_ADDR']]);
}
$kernel = new Kernel($_SERVER['APP_ENV'],(bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request,$response);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)