Я смотрю документацию здесь: fideloper / TrustedProxy и Laravel 5.6 Доверенные прокси .
Я настроен с Laravel, с управляющими серверами Forge.
Это промежуточное ПО, определенное в Kernel.php
:
protected $middleware = [
\App\Http\Middleware\EnvMiddleware::class,
\App\Http\Middleware\TrustProxies::class,
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\ChaseConey\LaravelDatadogHelper\Middleware\LaravelDatadogMiddleware::class
];
Это TrustProxies.php
:
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware
{
/**
* The trusted proxies for this application.
*
* @var array
*/
protected $proxies = '**';
/**
* The headers that should be used to detect proxies.
*
* @var string
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;
}
В вызовах API $request->ip()
возвращает правильный IPадрес в стадии подготовки, который не сбалансирован по нагрузке.
Однако это возвращает значение одного из двух моих серверов с балансировкой нагрузки в рабочем состоянии.
Это установленные composer.json
пакеты:
"laravel/framework": "5.6.*"
"fideloper/proxy": "^4.0"
Я пробовал оба:
protected $headers = Request::HEADER_X_FORWARDED_ALL;
и
protected $headers = Request:: HEADER_X_FORWARDED_AWS_ELB;
Есть идеи?