Laravel 8 配置可信代理
如果你的应用程序运行在失效的 TLS / SSL 证书的负载均衡器后,你可能会注意到你的应用程序有时不能生成 HTTPS 链接。通常这是因为你的应用程序正在从端口 80 上的负载均衡器转发流量,却不知道是否应该生成安全链接。
解决这个问题需要在 Laravel 应用程序中包含 App\Http\Middleware\TrustProxies
中间件,这使得你可以快速自定义应用程序信任的负载均衡器或代理。你的可信代理应该作为这个中间件的 $proxies
属性的数组列出。除了配置受信任的代理之外,还可以配置应该信任的代理 $header
:
<?php
namespace App\Http\Middleware;
use Fideloper\Proxy\TrustProxies as Middleware;
use Illuminate\Http\Request;
class TrustProxies extends Middleware
{
/**
* 此应用的信任代理
*
* @var string|array
*/
protected $proxies = [
'192.168.1.1',
'192.168.1.2',
];
/**
* 应被用于侦测代理的headers配置
*
* @var int
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
技巧:如果你使用 AWS 弹性负载平衡,你的
$header
值应该是Request::HEADER_X_FORWARDED_AWS_ELB
。如果您想查看更多可用于 $headers 的属性信息,请查阅 Symfony 的文档 信任代理。