Google Cloud TCP Балансировщик нагрузки вперед IP
Я использую Google Cloud TCP для пересылки запросов в службу Kubernetes NGINX. Как и ожидалось, журналы на NGINX показывают IP балансировщика нагрузки. Как я могу получить фактический IP
2 ответа
Решение
Переадресованные заголовки из балансировщика нагрузки
X-Forwarded-For
X-Forwarded-Proto
Таким образом, в nginx будет использоваться $http_x_forwarded_for
location / {
...
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
}
Если вы используете Kubernetes и сервисы, вам нужно установить политику внешнего трафика на локальную
kind: Service
apiVersion: v1
metadata:
name: proxy-service
spec:
selector:
app: the-application
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- protocol: TCP
port: 443
targetPort: 443
name: https
Использование $http_x_forwarded_for
переменная для входа в исходный IP-адрес пользователя.