TrustProxies и Laravel возвращают IP-адрес моего сервера, а не конечного пользователя - PullRequest
0 голосов
/ 11 октября 2018

Я смотрю документацию здесь: 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;

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...