Google Cloud Kubernetes Laravel Получить IP-адрес посетителя

Я пытаюсь получить 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? Помощь приветствуется.

Какой у вас класс Ingress? Это nginx, о котором вы говорите, или ваш веб-сервер nginx включен в ваш контейнер?

Mathieu Bour 29.05.2019 13:29

@MathieuBour Nginx упакован в контейнер, запущено только 1 приложение, поэтому классы Ingress не используются.

plexcell 29.05.2019 14:04

Что ж, я предлагаю вам добавить свой vhost в вопрос, чтобы все могли проверить.

Mathieu Bour 29.05.2019 14:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
3
330
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

externalTrafficPolicy: "Local"

а также

healthCheckNodePort: "numeric port number for the service"

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

Другие вопросы по теме