Google Cloud Kubernetes Laravel Получить IP-адрес посетителя - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь получить IP-адрес посетителя в моем приложении Laravel, которое использует Nginx в Google Cloud Kubernetes Engine, под балансировщиком нагрузки.

Я настроил 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 int
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

Я тоже пробовал

protected $proxies = '**';

И

protected $proxies = ['loadbalancer_ip_here'];

Независимо от того, что я пробовал, он всегда возвращает ip балансировщика нагрузки.

Может ли это быть вызвано конфигурацией Nginx? Помощь оценена.

1 Ответ

1 голос
/ 29 мая 2019

Вы должны установить политику трафика в вашей службе nginx

externalTrafficPolicy: "Local"

, а также

healthCheckNodePort: "numeric port number for the service"

Подробнее в Сохранение исходного IP-адреса клиента doc

...