Как добавить поле x-forwarded-for в мои журналы доступа для входного контроллера nginx? - PullRequest
3 голосов
/ 22 апреля 2019

Я использую входной контроллер nginx на gke, по умолчанию так выглядят мои журналы доступа:

"10.123.0.20 - [10.123.0.20] - - [22/Apr/2019:18:47:59 +0000] "GET /sdflksdf/sdfsdf HTTP/2.0" 404 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/538.12 (KHTML, like Gecko) Chrome/73.0.3683.100 Safari/537.36" 26 0.002 [default-blah-80] 10.44.0.26:80 0 0.001 404 skjf0s93jf0ws93jfsijf3s3fjs3i

Я хочу добавить заголовок x-forwarded-for в мои журналы доступа. Мне бы хотелось, чтобы это поле было добавлено в конце текущей строки журнала, если это возможно. ИЛИ в начале строки журнала тоже все будет в порядке, я думаю

Я смотрю на их документы, и мне не ясно, как добавить x-forwarded-for в журнал доступа: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/

1 Ответ

4 голосов
/ 23 апреля 2019

Вы должны использовать ConfigMap для настройки конфигурации NGINX :

ConfigMaps позволяют вам отделять конфигурационные артефакты от изображения содержимое для переноса контейнерных приложений.

Ресурс API ConfigMap хранит данные конфигурации в качестве значения ключа пар. Данные предоставляют конфигурации для компонентов системы для nginx-контроллер.

Для настройки пользовательских журналов необходимо использовать клавишу log-format-upstream.

например:.

Создайте следующую конфигурационную карту:

apiVersion: v1
data:
  log-format-upstream: '$remote_addr - $request_id - [$proxy_add_x_forwarded_for] - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status'
kind: ConfigMap
metadata:
  name: nginx-ingress-config

и убедитесь, что вы используете --configmap=$(POD_NAMESPACE)/nginx-ingress-config в качестве команды args для вашего nginx-ingress-controller (пример из официального репо здесь ).

...